dポイントプレゼントキャンペーン実施中!

Oracle9i SQLについて
環境:WinXP(SP3),Oracle9i,VB2005

受注のテーブルから未出荷で品番毎に一番早い納期の
受注数を取得したいのですが上手くいきません
ご教授願います。

SQL出力結果イメージ
品番  納期   受注数
A 2010/06/01 6
B 2010/05/26 10
C 2010/05/24 1

A 回答 (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)
    • good
    • 0
この回答へのお礼

ありがとうございます。
目的の結果が得られました。

お礼日時:2010/05/19 08:39

抽出元のテーブルの構造がわからないと回答するのは難しいです。

この回答への補足

すみません。

受注製番  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は生産管理システム内での在庫を管理するための区分
ですので今回は関係ありません

補足日時:2010/05/18 13:49
    • good
    • 0

「未出荷」の条件が分からないのですが、仮に


納期>本日とすると、以下のようになるでしょう。
SELECT B.* FROM
(SELECT 品番,MIN(納期) 最早 FROM テーブル
WHERE 納期>SYSDATE GROUP BY 品番) A
INNER JOIN テーブル B
ON A.品番=B.品番 AND A.最早=B.納期
    • good
    • 0
この回答へのお礼

ありがとうございます。
INNER JOIN で実現できるのですね。

お礼日時:2010/05/19 08:38

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