- ベストアンサー
Oracle9i SQLについて
Oracle9i SQLについて 環境:WinXP(SP3),Oracle9i,VB2005 受注のテーブルから未出荷で品番毎に一番早い納期の 受注数を取得したいのですが上手くいきません ご教授願います。 SQL出力結果イメージ 品番 納期 受注数 A 2010/06/01 6 B 2010/05/26 10 C 2010/05/24 1
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
これでいかがでしょうか? SELECT A.品番ID, A.納期, A.受注数 FROM テーブル A WHERE (A.品番ID, A.納期) IN (SELECT B.品番ID, Min(B.納期) FROM テーブル B WHERE B.状態K = "未出荷" GROUP BY B.品番ID)
その他の回答 (2)
- aenvgielle
- ベストアンサー率14% (128/893)
抽出元のテーブルの構造がわからないと回答するのは難しいです。
補足
すみません。 受注製番 NO 品番K 品番ID 納期 受注数 状態K 1000 0 1 A 2010/05/24 1 未出荷 1001 0 1 A 2010/05/25 10 未出荷 1002 0 1 A 2010/05/26 15 未出荷 1003 0 1 B 2010/05/24 25 未出荷 1004 0 1 C 2010/05/26 100 未出荷 となっており主キーは受注製番とNOです 品番Kは生産管理システム内での在庫を管理するための区分 ですので今回は関係ありません
- nda23
- ベストアンサー率54% (777/1415)
「未出荷」の条件が分からないのですが、仮に 納期>本日とすると、以下のようになるでしょう。 SELECT B.* FROM (SELECT 品番,MIN(納期) 最早 FROM テーブル WHERE 納期>SYSDATE GROUP BY 品番) A INNER JOIN テーブル B ON A.品番=B.品番 AND A.最早=B.納期
お礼
ありがとうございます。 INNER JOIN で実現できるのですね。
お礼
ありがとうございます。 目的の結果が得られました。