![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
下記テーブルを紐付けてクエリを作成します(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ではない場合は検品テーブルのレコードカウント数を表示。
しかし、できれば一つのクエリで上記の結果を表示させたいのですが、可能なのでしょうか。
ご教授お願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> できれば一つのクエリで上記の結果を表示させたいのですが
一つのクエリの定義が微妙なところですが、以下でどうでしょう?
※検品テーブルへのレコード展開はなされているものとしています。
※インデントのため全角スペースがあるので注意してください。
※表示順は、得られた[コード]の昇順にしています。
select t1.コード, t2.数量 as 数量合計
from マスターテーブル t1 inner join 受注テーブル t2 on t1.コード = t2.コード
where t1.印刷フラグ = 'YES'
union
select t3.コード, count(*) as 数量合計
from 検品テーブル t3
where t3.コード in
(select t4.コード from マスターテーブル t4
where t4.印刷フラグ = 'NO')
group by t3.コード
order by 1
;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- その他(データベース) accessについて 2 2022/05/31 16:58
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
続.ORACLEのSELECTのソートに...
-
SQL 2つのテーブルとSUBSTRING...
-
2つのテーブルから条件に一致...
-
行方向のデータを横に並べる
-
重複するキーから一番古い年月...
-
主キーの変更
-
ACCESSのコンパイルエラーについて
-
Accessユニオンクエリーで2つ...
-
UNION ALL
-
ACCESS 一つのフィールドに複...
-
片方だけ抽出する方法(SQL)
-
Access2002 2つのテーブルのマ...
-
レコードの一致方法
-
accessで移動平均する方法
-
Inner join と Left joinの明...
-
アクセスで重複データが消えて...
-
Accessでフィールドを比較した...
-
オラクルではできるのにSQLSERV...
-
データの二重表示の原因
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
ACCESS 一つのフィールドに複...
-
行方向のデータを横に並べる
-
PLSQLの識別子エラー
-
VIEWでテーブルの集計結果...
-
Accessでフィールドを比較した...
-
Accessユニオンクエリーで2つ...
-
主キーの変更
-
ACCESSのコンパイルエラーについて
-
片方だけ抽出する方法(SQL)
-
【Access】順位を付けたい
-
[Oracle] UPDATE分の副問い合わ...
-
テーブル値関数経由でのデータ更新
-
ACCESS インポート時の重複チ...
-
ACCESS2000でDCount関数の使い方
-
Access2002の集計レポート?
-
商品コード番号を入力すると商...
-
Inner join と Left joinの明...
おすすめ情報