クエリで行と行のデータ比較方法を教えてください
SQL2005でクエリを走らせて調査したいので教えてください
●取引データ●
------------------------------
企業 取引開始日 取引終了日
------------------------------
A 20110610 20110612
A 20110701 20110710
B 20110401 20110403
B 20110408 20110421
B 20110701 20110701
とデータがあった場合、今回の取引開始日と前回の取引終了日を比較して3週間以内かどうかの調査をしたいのですが、クエリで一発で出す方法がないでしょうか?
検索して調査した結果、相関サブクエリで行えるのでは???と思い試しましたが構文がイケてないようで、思ったように出てきません。
相関サブクエリの意味があまり理解できないので助言をお願いいたします。
件数が多いので、とりあえずA企業だけでのクエリで走るかどうか調査したいので企業を限定しました
select d1.取引開始日, d1.取引終了日
from 取引データ as d1, 取引データ as d2
where
d1.企業 = 'A'
and
d2. 取引開始日 = (select min(d3.取引開始日)
from 取引データ as d3
where d3.取引開始日 > d1.取引終了日 + '21')
出力したい結果ですが
---------------------------------------------------
企業 取引開始日 取引終了日 ★経過日 ★3週間以上
---------------------------------------------------
A 20110610 20110612
A 20110701 20110710 18
B 20110401 20110403
B 20110408 20110421 5
B 20110701 20110701 70 ○
対処法をご教示いただきますようどうぞ宜しくお願いいたします。
お礼
ありがとうございます。
補足
さっそく回答ありがとうございます。 説明不足ですみません。 "仕事納め"のことを"納会"という使い方をする 業界なのですが "仕事始め"は"発会"でいいのでしょうか?