アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えて下さい。

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の記述で計算までして取得する事はできないでしょうか???

教えて頂ければ幸いです。

よろしくお願いします。

A 回答 (3件)

失礼しました、「T_在庫日次」のテーブル名の右です。

(質問の1行目が2行で表示されていたので2行目のと書いてしまいました)
    • good
    • 0
この回答へのお礼

nharasawa様、何度もご回答ありがとうございます!

教えて頂いたように記述しましたが、やはり処理区分='10'だけの合算値は取得できず、、、

何か間違っているでしょうか???


Select 場所コード,品目番号, SUM(数量) AS 数量 From ( Select 場所コード,品目番号, 数量 From T_在庫日次 WHERE 処理区分 = '10'
UNION ALL Select 場所コード,品目番号, 数量 From T_在庫月次 ) Group By 場所コード,品目番号

お礼日時:2012/05/23 14:23

>T_在庫日次の方にしかデータがなくとも出力したい場合にはどのように変更したら


>良いでしょうか、、、
《現状のSQL》の2行目のテーブルの後に「WHERE 処理区分='10'」を追加すれば出来ます。
    • good
    • 0
この回答へのお礼

nharasawa様、ご回答ありがとうございます。

以下のような形で間違っていないでしょうか???

Select 場所コード,品目番号, SUM(数量) AS 数量 From ( Select 場所コード,品目番号, 数量 From T_在庫日次
UNION ALL Select 場所コード,品目番号, 数量 From T_在庫月次 WHERE 処理区分='10') Group By 場所コード,品目番号

現状のSQLの2行目ですが、T_在庫月次の場合、"処理区分"という項目がなく、
条件を追加するとエラーとなってしまいます、、、

私の認識が誤っているのでしょうか、、、

もう少しだけ教えて頂ければ幸いです。

よろしくお願いします。

お礼日時:2012/05/23 09:01

SELECT 日次.場所コード,日次.品目番号,数量合計+数量 FROM


(SELECT 場所コード,品目番号,SUM(数量)AS 数量合計
FROM T_在庫日次 WHERE 処理区分=10
GROUP BY 場所コード,品目番号) 日次
INNER JOIN T_在庫月次 月次 ON
日次.場所コード=月次.場所コード
AND 日次.品目番号=月次.品目番号
ORDER BY 1,2
でどうでしょうか。
    • good
    • 0
この回答へのお礼

nharasawa様、ご回答ありがとうございます。

これに関して、もう1点だけ教えて下さい。

教えて頂いたSQLでは場所コード、品目番号が等しい時に出力されるかと
思われます。

T_在庫日次の方にしかデータがなくとも出力したい場合にはどのように変更したら
良いでしょうか、、、

何度も大変申し訳ありません。

よろしくお願いします。

お礼日時:2012/05/22 17:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!