• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLについて)

SQLで日付範囲内の全店最新在庫を取得する方法

このQ&Aのポイント
  • 下記テーブル情報がある場合、日付の範囲を指定した中での全店最新在庫を1回のSQLで取得する方法を調査しています。
  • 使用しているDBは富士通製のSymfowareであり、ストアド等の使用はできません。
  • 不可能な場合は、一旦日付範囲内のデータを全て取得し、プログラム内で最新の在庫数を求める予定です。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1416)
回答No.2

商品コード別に集計する必要がありますか?→集計単位不明 未だ補足が足りません。普通に考えれば商品コード別ですね。 SELECT A.商品コード,SUM(A.在庫数) AS 最新在庫 FROM (SLECT * FROM テーブル WHERE 日付 BETWEEN '20090601' AND '20090630') AS A, (SELECT 商品コード,MAX(日付) AS 最新日,店舗 FROM テーブル  WHERE 日付 BETWEEN '20090601' AND '20090630'  GROUP BY 商品コード,店舗)AS B WHERE A.商品コード=B.商品コード AND A.店舗=B.店舗 (1)日付の範囲は適当に決めました。部分文字列での一致もある SUBSTRING(日付 FROM 1 FOR 6) = '200906'とか・・・ (2)列名に別名を設ける時のキーワードが分かりませんが、一般的な SQLでは「AS」ですので、そうしてみました。

yuki1231
質問者

お礼

別表2つ使う発想がありませんでした。 まだまだですね・・・orz 試しに実行してみた所、希望通りの内容で データが取得できました。 本当にありがとうございました。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1416)
回答No.1

>上記の場合は、全店在庫数が3となる訳です。 20090602が最新じゃないですか?その日の在庫数は1ですけど… 全店在庫数と言うのは「店舗」にかかわらず、最新日の合計のこと? 商品コード別に集計する必要がありますか?→集計単位不明

yuki1231
質問者

補足

説明不足ですいません。 店舗毎の最新在庫数を集計する事になります。 001店舗は6月2日の在庫数1+ 002店舗は6月1日の在庫数2 で合計3です ><

関連するQ&A