いつもお世話になっております。
以前、2つのテーブルを1つにする方法について教えていただきましたが、それにもう1つのテーブルを追加したいと考えています。私なりにいろいろ調べて四苦八苦しましたが、思うような結果にならず再度質問させていただきました。
具体的には下記の通りです。
テーブル名:T入庫
フィールド:ID(主キー)、日付、部品№、入庫数
テーブル名:T出庫
フィールド:ID(主キー)、日付、部品№、出庫数
上記、2つのテーブルを下記のように1つにする方法を教えてもらいました。
SELECT Q.日付, Q.部品№, SUM(Q.入庫数) AS 入庫数, SUM(Q.出庫数) AS 出庫数
FROM(SELECT T入庫.日付, T入庫.部品№, T入庫.入庫数, Null AS 出庫数 FROM T入庫
UNION ALL
SELECT T出庫.日付, T出庫.部品№, NULL AS 入庫数, T出庫.出庫数 FROM T出庫) AS Q
GROUP BY Q.日付, Q.部品№;
これに次のテーブルを追加したいと考えています。
テーブル名:T発注
フィールド:ID(主キー)、日付、部品№、発注数
UNIONで3つのテーブルを合わせることはできるのは分かったのですが、単純に増やしただけではどうにもうまくいきませんでした。
何卒、ご教示のほどよろしくお願い申し上げます。
No.2ベストアンサー
- 回答日時:
No.1 です
すみません。Microsoft Access は、標準 SQL の case 関数が使えないようですね。
代わりに IIf 関数や Switch 関数で置き換えてください
Ogre7077さん、再びありがとうございます。
申し訳ありません。IIFやSwithの使い方を調べて置き換えてみたのですが、どうにもうまくいきません。はじめて使う関数なので、私の使い方が違っている可能性大ですが…。
何度も申し訳ありませんが、置き換え方を教えていただけないでしょうか。
よろしくお願い申し上げます。
No.1
- 回答日時:
テーブルを今後も追加することを考慮し、少しばかり汎用的に
select Q.日付, Q.部品
, sum(case Q.種別 when 1 then Q.数 end) as 入庫
, sum(case Q.種別 when 2 then Q.数 end) as 出庫
, sum(case Q.種別 when 3 then Q.数 end) as 発注
from (
_ select 日付, 部品, 1 as 種別, 入庫数 as 数 from T入庫
_ union all
_ select 日付, 部品, 2 as 種別, 出庫数 as 数 from T出庫
_ union all
_ select 日付, 部品, 3 as 種別, 発注数 as 数 from T発注
) as Q
group by Q.日付, Q.部品
Ogre7077さん、ありがとうございます。
試してみましたが、
クエリ式 ‘sum(case Q.種別 when 1 then Q.数 end)’の構文エラー:演算子がありません。
と出てしまいます。
なぜだかわかるでしょうか。
ご教示いただけますと幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Excel(エクセル) Excelで在庫表(クエリ、ピボット) 2 2022/04/11 17:11
- その他(Microsoft Office) Excelの関数(FILTER関数)について教えてください 2 2023/07/31 16:11
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- 家具・インテリア この前よりも、長く在宅しそうなので改めて部屋の模様替えをしようと思ったのですが、キッチン内蔵のワンル 7 2022/06/19 08:55
- 引越し・部屋探し 【冷蔵庫搬入の幅について】 引っ越しをします。 冷蔵庫をかおうと思っています。 急ぎです。 価格は安 2 2023/06/15 19:12
- メルカリ メルカリShopsを作るとメルカリで販売は楽になりますか メルカリとまったく変わりませんか? 2 2022/10/11 19:22
- 財務・会計・経理 1、製造指図書…の製造のため、材料A50000円を出庫し、外出先の工場に加工を依頼した。 なお当工場 4 2022/06/18 10:46
- 食べ物・食材 氷点下以上の冷蔵保存で溶けてしまった冷凍食品をどうすべきか 3 2023/07/06 19:31
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
楽天証券→SBI証券へ投資信託は...
-
アクセスが・・・
-
ACCESSのテーブル設計
-
Access エラー 指定されたフィ...
-
Accessで“0”ゼロ表示をする
-
ACCESSで在庫管理 備考欄の組...
-
ACCESSで在庫の入出庫履歴を作...
-
Accessで、在庫表を作りたいの...
-
フォーム上でデータをあるテー...
-
Accessで、在庫管理システムを...
-
日付型のフィールドに空白を入...
-
差込印刷での全角表示について...
-
SQL文で パラメータが少なすぎ...
-
2つのテーブルに共通するレコ...
-
テキストボックスにクエリ結果...
-
アクセスのエラー「クエリには...
-
エクセルにおける「フィールド...
-
クエリのデータをテーブルに入...
-
アクセス:クエリの結合とリレ...
-
最新日のデータのみ抽出するク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで“0”ゼロ表示をする
-
アクセスのクエリで引き算をし...
-
Accessで在庫管理する時の在庫...
-
在庫管理と賞味期限管理
-
Access エラー 指定されたフィ...
-
ACCESSで在庫の入出庫履歴を作...
-
Accessで、在庫表を作りたいの...
-
ACCESSで在庫管理 備考欄の組...
-
Accessのレポートで日々の在庫...
-
ACCESSで在庫管理を作成するよ...
-
出庫と消費について
-
ACCESSで困っています。
-
アクセスが・・・
-
Accessで在庫管理をしたいです。
-
ACCESSで在庫管理がした...
-
コインパーキングについて
-
ACCESS フォームのレコードを...
-
エクセルVBAとアクセスでの在庫...
-
アクセスでの在庫管理(在庫期...
-
新宿ミライナタワー駐車場
おすすめ情報
「switch」へ置き換えました。
SELECT Q.日付, Q.部品№
, Sum(Switch(Q.種別=1,Q.数,True,0)) AS 入庫
, Sum(Switch(Q.種別=2,Q.数,True,0)) AS 出庫
, Sum(Switch(Q.種別=3,Q.数,True,0)) AS 発注
FROM (
select 日付, 部品№, 1 as 種別, 入庫数 as 数 from T入庫
union all
select 日付, 部品№, 2 as 種別, 出庫数 as 数 from T出庫
union all
select 日付, 部品№, 3 as 種別, 発注数 as 数 from T発注
) AS Q
GROUP BY Q.日付, Q.部品№;
これを実行したところ、「発注数のパラメータ入力」を求められます。
何を入力したら良いでしょうか。
T発注を確認したところ、フィールド名が発注数ではありませんでした。
修正したところ、目的のものができました。
Ogre7077さん、ありがとうございました。