• ベストアンサー

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

  • Access クエリ 抽出・演算

    Access クエリについてご質問させていただきます。 テーブルのデータを特定の条件に一致するレコードだけ抽出し、演算を実施したいです。 (1):CSVデータをテーブルに取り込みます。 テーブルは左から『取引No』『部門コード』『部門名』『発注入力日』『担当者名』『発注日』『伝票No』『伝票行No』『商品コード』『商品名』『入数』『発注数(入力数)』『発注数量※1』『発注金額※2』『出荷日』『出荷数量※3』『出荷金額※4』となっております。 ※1:発注数量は入数×発注数が計算済みです。 ※2:発注金額は発注数量×単価で小数点以下切り捨てで計算済みです。 ※3:出荷数量は入数×出荷数が計算済みです。 ※4:出荷金額は出荷数量×単価で小数点以下切り捨てで計算済みです。 (2):クエリを使用して、商品名が『単3乾電池』の出荷数量を10で割り、10で割り切れるレコードを求めたいです。 (3):(2)の演算結果(10で割った後の整数)を合算して合計値をクエリの演算結果として表示したいです。 ※(2)の抽出条件でのクエリをすでに作成済みで、合計したクエリを作成したいです。 どのようにすればよろしいでしょうか?

  • Accessクエリの抽出条件

    Access2000を使用しています。 クエリの抽出条件にテーブルの値を使用したいのですが、その方法がわかりません。 テーブルAには、「日付」、「当者コード」 などの項目があります。 テーブルBの項目は「担当者コード」のみです。また、1レコードしか登録 されていません(2レコード以上になることはありません)。 そこで、テーブルAに対するデータ抽出条件を、テーブルBの「担当者」としたいのですが、 どのように記述すればよろしいでしょうか・・・? よろしくお願いします。

  • Access クエリ 抽出条件

    Access の クエリ における 抽出条件 の 書き方についてご質問させていただきます。 クエリには、左から『商品名』、『出荷数量』、『注文数量』の3列がございます。 各レコードの『出荷数量』フィールドの値と『注文数量』フィールドの値を比較し、 『注文数量』フィールドの値の方が大きいレコードだけを抽出したいのですが、どのように抽出条件を記載すればよろしいでしょうか? 元データは1つのテーブルに格納されています。 例:注文数量:500、出荷数量:200など出荷数量が少ないレコードを抽出対象 注文数量:100、出荷数量:100など注文数量=出荷数量レコードは抽出対象外

  • ACCESSクエリーの抽出条件について

    OS WIN7 ACCESS 2007使用です。 クエリーの抽出条件について何ですが、テーブルにコードというフィールドがありまして、そこには数値が入力されています。 コード 1 2 3 4 5 ・ ・ このテーブルを元に選択クエリーを作りたいのですが、条件としてコードの値に2と3両方がある場合、2のレコードだけを表示せず、どちらか一方の数値だけの場合またはどちらもない場合は、全てのレコードを表示するようにしたいのです。 抽出条件はどのように書けばよいのでしょうか? いろいろ試したのですが、うまくいきません。 どなたかお助け下さい。

  • アクセス クエリー 抽出条件について

    アクセス クエリー 抽出条件について たとえば文字列で5桁の仕入先コードフィールドが有るとします。で1と3と5を除くレコードを表示させたいときは 抽出条件をどの様に設定したらよろしいでしょうか?

  • Access2003 一つのクエリで結果を出したい

    お世話になります。 下記テーブルを紐付けてクエリを作成します(Access2003)。 受注テーブル  ・ID  ・コード  ・数量 検品テーブル  ・ID  ・コード  ・検品フラグ マスターテーブル  ・ID  ・コード  ・印刷フラグ 検品テーブルのレコードは、受注テーブルの数量合計が展開されたレコード数となります。例えば、AAAというコードで数量合計が8の場合、検品テーブルではAAAのレコードが8レコード存在することになります。 但し、マスターテーブルの印刷フラグがYesとなっているものは、数量がいくつあっても受注テーブルは1レコード作成されます(数量合計で展開しない)。  受注テーブル   ID コード 数量   1  AAA   5   2  AAA   3   3  BBB  100  検品テーブル   ID コード 検品フラグ   1  AAA   Yes   2  AAA   Yes   3  AAA   Yes   4  AAA   Yes   5  AAA   Yes   6  AAA   Yes   7  AAA   No   8  AAA   Yes   9  BBB   Yes  マスターテーブル   ID コード 印刷フラグ   1  AAA   No   2  BBB   Yes こんな感じです。 そこで各テーブルをコードで紐付けてグループ化し、検品フラグYesで抽出した状態で以下の結果を表示出来るようにしたいところです。 コード 数量合計  AAA   7  BBB  100 要するに印刷フラグがYesのものは受注テーブルの数量合計を表示し、それ以外は検品された数を表示させたいと考えています。 あらかじめ受注テーブルでコードでグループ化し、数量の合計を算出するクエリ(※1)を作成し、そのクエリと検品テーブル、マスターテーブルを紐付けたらうまく表示出来ました。 ※数量合計はIIFで印刷フラグ=Yesの場合は※1の数量合計を、Yesではない場合は検品テーブルのレコードカウント数を表示。 しかし、できれば一つのクエリで上記の結果を表示させたいのですが、可能なのでしょうか。 ご教授お願い致します。

  • アクセス 2つのクエリーの集計について

    A: 選択クエリ|薬品コード|名称|数量|        | 001  |A  |1  | | 002  |B  |2  | | 003  |C  |3  | B: 選択クエリ|薬品コード|名称|数量|       | 001  |A  |1  | | 003  |C  |2  | | 004  |D  |3  | という2つのクエリから、 |     A   |    B |合計| |薬品コード|名称|数量|薬品コード|名称|数量| | | 001  |A  |1  | 001   |A |1  |2  |  | 002  |B  |2  | |  |  |2 |  | 003  |C  |3  | 003   |C |2  |5  |  |     |  |  | 004   |D  |3  |3  | というように、2つのクエリの結果も表示し、合計も表示 できるようなクエリの作り方を教えてください。 AとBの薬品コードを結合しても、両方の薬品コードを表示 できるような結合プロバディはないようにおもうのですが。 テーブルにしてからクエリにしないといけないのか、 そのあたりもわかりませんが教えてください。 よろしくお願いします。  質問内容書くときはうまくいっているのに、投稿だと線がずれているんですが、わかりますでしょうか?  

  • アクセスのクエリの作り方

    初心者なので教えてくださいませんか? アクセスでテーブルを複数作成して、それをクエリで結合するときに、どのテーブルからどのフィールドを選べばいいのかわかりません。 例えば・・・ 売上テーブル:NO 売上日 商品コード 数量 商品テーブル:商品コード 商品名 単価 この二つのテーブルを結合するクエリを作ります。 NO 売上日 商品コード 商品名 単価 数量 上記のフィールドを使用したいのですが、このとき、商品コードをどちらのテーブルのを使ったらよいのでしょう。 その判断は何からしたらよいのでしょうか。 うまく説明できているかわかりませんが、よろしくお願いします。

  • 追加クエリでテーブル全体を指定したまま条件を追加したい

    ACCESS2000を使ってます。 追加クエリでレコード追加の元となるテーブル全体を選択してます。 クエリのフィールド:テーブル名称.*と指定していますが、テーブルに追加する条件として、西暦4桁が格納されている「NENNDO」フィールドに2006だけのレコードを追加したいです。 クエリのデザインでフィールド:テーブル名称.*と指定されている状況で「NENNO」フィールドを追加して抽出条件に2006を指定して実行すると「出力先が重複しています」と表示されます。 追加クエリの対象テーブルが沢山あって、レコード追加先がOracleとなっているのでテーブルを削除せずにACCESSの削除クエリと追加クエリでレコードの作業したいと思っております。 フィールド:テーブル名称.*としたまま、テーブルに追加する条件だけを設定する方法をご教授願います。 (フィールドは、*ではなく、フィールド全てを1つづつ指定しないといけないのでしょうか?)

  • Accessのクエリ(初心者)

    Access超初心者です。 クエリで悩んでいるので、お教えください。 テーブル1に CODE(商品ID)_NAME(名前)_SUU(数量)_DAY(日付)の4項目があり、 クエリを使って、最も大きいSUUを抽出したい (かつ最も大きいSUUのデータが重複している場合、その中で最も古い日付のデータのみを抽出したい)のですが・・・ たとえば、 テーブル内容: CODE(商品ID)_NAME(名前)_SUU(数量)_DAY(日付) A_あめ_600_0517 A_あめ_900_0518 A_あめ_400_0618 B_ガム_120_0217 B_ガム_060_0319 B_ガム_180_0718 B_ガム_180_0518 抽出結果: A_あめ_900_0518 B_ガム_180_0518 ということです。 デザインビューを使うとして、どのような方法がありますでしょうか? どうかご教授お願いします!

専門家に質問してみよう