• ベストアンサー

access2003のクエリの条件指定について質問です

コード(7桁)、単価、数量、金額、日付(年月日6桁表示)のテーブルと コード、部門コード(コードの上3桁)の選択クエリと 部門コード、部門名称のテーブルを結合して コード_部門(コードの上3桁)、コード_追番(コードの下4桁)、部門名称、単価、数量、金額、日付_年(日付の分割・2桁)、日付_月(日付の分割・2桁)、日付_日(日付の分割・2桁)、を他のテーブルに抽出する追加クエリを作成し、条件として部門コードに対応する部門名称が無い場合そのフィールドは空白でレコード自体は表示するようにしたいのですが、どうすれば良いのでしょうか? いくらやっても対応する部門名称が無い場合、抽出されずにレコード自体が表示されなくなってしまいます。 拙い文章で上手く内容が伝わらないかもしれませんが、どなたかご教授下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.1

こんにちは。 以下の例のように試してみてください。 INSERT INTO 他のテーブル SELECT TA.コード_部門(コードの上3桁),TA.コード_追番(コードの下4桁),TB.部門名称,TA.単価,TA.数量,TA.金額,     TA.日付_年(日付の分割・2桁),TA.日付_月(日付の分割・2桁),TA.日付_日(日付の分割・2桁) FROM テーブルA AS TA LEFT JOIN テーブルB AS TB  ON TB.部門コード = TA.コード(上3桁)

jinseittenandaro
質問者

お礼

LEFT JOINを使えば良かったんですね(汗) 上手くいきました!! 迅速なご回答ありがとうございます!! 下記にSQL文を記載させて頂きますのでおかしな箇所があれば再度ご教授お願いしたいのですが… 上手く抽出は出来ましたが、いまいち内容を理解できていないので…(泣) かなり質問時に端折ったのと基本的にはデザインビューで作成していたので質問内容と若干構成が違いますが宜しくお願い致します。 INSERT INTO 移行用テーブル ( コード_部門, コード_追番, 部門名称, 単価, 数量, 金額, 日付_年, 日付_月, 日付_日 ) SELECT Mid(抽出テーブル.コード,1,3) AS コード_部門, Mid(抽出テーブル.コード,4,4) AS コード_追番, 部門テーブル.部門名称 AS 部門名称, Format(抽出テーブル.単価,"00000") AS 単価, Format(抽出テーブル.数量,"000") AS 数量, Format(抽出テーブル.金額,"0000000000000") AS 金額, Mid(抽出テーブル.日付,1,2) AS 日付_年, Mid(抽出テーブル.日付,3,2) AS 日付_月, Mid(抽出テーブル.日付,5,2) AS 日付_日 FROM (抽出テーブル INNER JOIN SEL_BUMON ON 抽出テーブル.コード = SEL_BUMON.コード) LEFT JOIN 部門テーブル ON (SEL_BUMON.部門コード = 部門テーブル.部門コード) AND (SEL_BUMON.部門コード = 部門テーブル.部門コード) AND (SEL_BUMON.部門コード = 部門テーブル.部門コード);

関連するQ&A