教えて下さい。
SQLに関してです。
ある2つのテーブルの集計(数量の合算)をSQLで行いたいと考えています。
そこで、UNION ALL を使い集計させる事ができましたが、その中で、1つのテーブルに
条件を加えたいと考えています。
つまり、副問い合わせのような形にできないかと考えています。
《テーブル》
T_在庫日次
品目番号
場所コード
数量
処理区分
T_在庫月次
品目番号
場所コード
数量
《現状のSQL》
Select 場所コード,品目番号, SUM(数量) AS 数量 From ( Select 場所コード,品目番号, 数量 From T_在庫日次
UNION ALL Select 場所コード,品目番号, 数量 From T_在庫月次 ) Group By 場所コード,品目番号
上記のSQLに対し、T_在庫日次 の処理区分が ‘10’ のデータに対するT_在庫日次とT_在庫月次の数量の
合計を求めたいと考えています。
SQLの記述で計算までして取得する事はできないでしょうか???
教えて頂ければ幸いです。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
失礼しました、「T_在庫日次」のテーブル名の右です。
(質問の1行目が2行で表示されていたので2行目のと書いてしまいました)nharasawa様、何度もご回答ありがとうございます!
教えて頂いたように記述しましたが、やはり処理区分='10'だけの合算値は取得できず、、、
何か間違っているでしょうか???
Select 場所コード,品目番号, SUM(数量) AS 数量 From ( Select 場所コード,品目番号, 数量 From T_在庫日次 WHERE 処理区分 = '10'
UNION ALL Select 場所コード,品目番号, 数量 From T_在庫月次 ) Group By 場所コード,品目番号
No.2
- 回答日時:
>T_在庫日次の方にしかデータがなくとも出力したい場合にはどのように変更したら
>良いでしょうか、、、
《現状のSQL》の2行目のテーブルの後に「WHERE 処理区分='10'」を追加すれば出来ます。
nharasawa様、ご回答ありがとうございます。
以下のような形で間違っていないでしょうか???
Select 場所コード,品目番号, SUM(数量) AS 数量 From ( Select 場所コード,品目番号, 数量 From T_在庫日次
UNION ALL Select 場所コード,品目番号, 数量 From T_在庫月次 WHERE 処理区分='10') Group By 場所コード,品目番号
現状のSQLの2行目ですが、T_在庫月次の場合、"処理区分"という項目がなく、
条件を追加するとエラーとなってしまいます、、、
私の認識が誤っているのでしょうか、、、
もう少しだけ教えて頂ければ幸いです。
よろしくお願いします。
No.1
- 回答日時:
SELECT 日次.場所コード,日次.品目番号,数量合計+数量 FROM
(SELECT 場所コード,品目番号,SUM(数量)AS 数量合計
FROM T_在庫日次 WHERE 処理区分=10
GROUP BY 場所コード,品目番号) 日次
INNER JOIN T_在庫月次 月次 ON
日次.場所コード=月次.場所コード
AND 日次.品目番号=月次.品目番号
ORDER BY 1,2
でどうでしょうか。
nharasawa様、ご回答ありがとうございます。
これに関して、もう1点だけ教えて下さい。
教えて頂いたSQLでは場所コード、品目番号が等しい時に出力されるかと
思われます。
T_在庫日次の方にしかデータがなくとも出力したい場合にはどのように変更したら
良いでしょうか、、、
何度も大変申し訳ありません。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
orace 変更表エラーを回避する...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
SQL文で右から1文字だけ削除す...
-
Accessで別テーブルの値をフォ...
-
Accessでのレコード存在チェック
-
GROUP BYを使ったSELECT文の総...
-
SET句内で複数の条件を指定して...
-
SELECTで1件のみ取得するには?
-
Access でレコードセレクタが押...
-
MySQLで MAX()とGROUP BYを使う...
-
ファイル書込みで一行もしくは...
-
抽出したデータを修正して元の...
-
ワードの差込印刷で教えて下さ...
-
エクセルの指定したシートにエ...
-
ADO VBA 実行時エラー3021
-
Accessのクエリでフィールドの...
-
チェックボックスの項目をDBにi...
-
エクスプローラーで「2つの条件...
-
OracleのSQL*PLUSで、デー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessに2つのテーブルを結合...
-
Oracle SQL 2つのテーブルを使...
-
orace 変更表エラーを回避する...
-
こういうDELETE文を作成したい...
-
こういうSELECTは可能でしょうか?
-
GROUP BYを行った後に結合した...
-
Accessで別テーブルの値をフォ...
-
Oracleでの文字列連結サイズの上限
-
SELECTで1件のみ取得するには?
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
select句副問い合わせ 値の個...
-
レコードが存在しなかった場合
-
ADO VBA 実行時エラー3021
-
SQL文で素早くNULLを除外する方法
-
実績累計の求め方と意味を教え...
-
ファイル書込みで一行もしくは...
-
select insertで複数テーブルか...
-
キーが同じを複数行を1行にま...
-
SELECTの結果で同一行を複数回...
おすすめ情報