プロが教える店舗&オフィスのセキュリティ対策術

商品の入出庫記録簿を作成しようとしています。
データベース内の「1.入庫のテーブル」と「2.出庫のテーブル」から、SUM関数で指定項目の合計値を出力しましたが、1の入庫テーブルから出庫テーブルの在庫を減算する方法を教えて下さい。

要約すると、SUM関数で各テーブル(入庫のテーブル,出庫のテーブル)の指定項目の合計値を求めた後に、「1.入庫のテーブル」‐「2.出庫のテーブル」の結果を出力させたいです。

※1.添付画像を参照していただくと分かりやすいかもです。
※2.PDO方式でSQL文を記載しています。

1.入庫テーブルの合計値を求めるSQL文
$sql1 = "SELECT syouhin, SUM(kosu) AS 個数合計,SUM(jyuryo) AS 重量合計 FROM shipping GROUP BY syouhin";

2.出庫テーブルの合計値を求めるSQL文
$sql = "SELECT syouhin1, SUM(kosu1) AS 個数合計,SUM(jyuryo1) AS 重量合計 FROM storage GROUP BY syouhin1";

「【PHP】SQL文のSUM関数で出力した」の質問画像

A 回答 (2件)

正負逆にUNION ALLして再度SUMを取るとよいでしょう



SELECT syouhin, SUM(sum_kosu) AS gokei_kosu,SUM(sum_jyuryo) AS gokei_juryo FROM(
SELECT syouhin, SUM(kosu) AS sum_kosu,SUM(jyuryo) AS sum_ juryo FROM shipping GROUP BY syouhin
UNION ALL
SELECT syouhin1, -SUM(kosu1),-SUM(jyuryo1) FROM storage GROUP BY syouhin1
) AS DUMMY
GROUP BY syouhin
    • good
    • 3
この回答へのお礼

返信いただきありがとうございます。
無事、減算出来ました!

一つ教えて頂きたいのですが、テーブルがない場合に使うSQL文が「DUMMY」になるのでしょうか?また、テーブル以外にもDUMMYを使う場合がありましたらご教示頂けますようお願いします。

お礼日時:2015/11/16 20:30

>テーブルがない場合に使うSQL文が「DUMMY」



ちょっと不親切でしたね、もうしわけない
今回のSQL文はサブクエリを利用したわけですが、
「別名(alias)」をつけないといけないルールなんです。
別名はなんでもよい(よほど変な名前じゃなければ)ので
とりあえず今回はDUMMYとしました。
あまり深く考えない方がよいかと思います・・・
    • good
    • 1
この回答へのお礼

ご教示頂きありがとうございます。
おかげさまで色々と勉強になりました!

回答いただいただけでもありがたいです!

お礼日時:2015/11/16 21:35

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A