質問: 内部結合のsql文 次のような条件でのsql文はどのように書けばよいのでしょうか? 売上テーブル(フィールドは「売上no.」)と売上明細テーブル(フィールドは「売上no.」「行番号」)を内部結合します。 結合の条件は売上明細テーブルの売上no.が売上テーブルの売上no.と等しいもの、かつ売上明細テーブルの行番号の一番小さいもの、です。 行番号はユニークですが、必ずしも1から順に振られているとは限りません。 どうぞよろしくお願いします。
回答: 内部結合は考慮する必要はないと思いますよ。 <売上> 売上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文で書くことも可能。 [売上明細]を対象にデータを絞り込んでも結果は同じかと思います。