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

次のような条件でのSQL文はどのように書けばよいのでしょうか?

売上テーブル(フィールドは「売上No.」)と売上明細テーブル(フィールドは「売上No.」「行番号」)を内部結合します。
結合の条件は売上明細テーブルの売上No.が売上テーブルの売上No.と等しいもの、かつ売上明細テーブルの行番号の一番小さいもの、です。
行番号はユニークですが、必ずしも1から順に振られているとは限りません。

どうぞよろしくお願いします。

A 回答 (5件)

X ORDER BY 売上No, 行番号;


O ORDER BY 売上No;

訂正!
    • good
    • 0
この回答へのお礼

レスが遅れてしまい申し訳ありませんでした。参考になりました、ありがとうございます。

お礼日時:2007/12/13 16:45

内部結合は考慮する必要はないと思いますよ。



<売上>

売上No__売上日
________1__2007/11/11
________2__2007/11/12

<売上明細>

売上No__行番号
________1_________1
________1_________2
________2_________1
________2_________2

<クエリ1>

売上No__行番号
________1_________1
________2_________1

SELECT 売上No, 行番号
FROM 売上明細
WHERE 行番号=DMin("行番号","売上明細","売上No=" & 売上No)
ORDER BY 売上No, 行番号;

ここでは、条件に合致する最小値を取得するDMin関数を使っています。

SELECT 売上No, 行番号
FROM 売上明細 AS 明細
WHERE 行番号=(select min(行番号) from 売上明細 WHERE 売上No=明細.売上No)
ORDER BY 売上No, 行番号;

もちろん、DMin関数の部分を SQL文で書くことも可能。

[売上明細]を対象にデータを絞り込んでも結果は同じかと思います。
    • good
    • 0

間違えた。



select A.売上No, B.行番号
from 売上テーブル A,
(select 売上No, min(行番号) 行番号
from 売上明細テーブル
group by 売上No) B
where A.売上No = B.売上No
order by A.売上No

だった。
    • good
    • 0
この回答へのお礼

レスが遅れてしまい申し訳ありませんでした。参考になりました、ありがとうございます。

お礼日時:2007/12/13 16:45

select A.売上No, B.行番号


from 売上テーブル A,
(select 売上No, min(行番号) 行番号
from 売上明細テーブル
group by 売上No) B
order by A.売上No

でどうでしょうか
    • good
    • 0

こんにちは、candie-oさん



MIN関数を使ってみてはいかがでしょうか?

参考URL:http://www.komonet.ne.jp/~psql/chap9.htm
    • good
    • 0
この回答へのお礼

レスが遅れてしまい申し訳ありませんでした。参考になりました、ありがとうございます。

お礼日時:2007/12/13 16:46

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