2016-08-30 3 views
0

他の行と日付が重複している行のみを検索しようとしています。日付が重複している行を返す

例DATA:

Period: 13, Start Date: 9/1/2015, End Date: 9/30/2015 

Period: 14, Start Date: 9/15/2015, End Date: 10/30/2015 

Period: 15, Start Date: 11/1/2015, End Date: 11/30/2015 

ここに私の現在のクエリは次のとおり

select pd1.periodNumber AS 'Period Seq A', pd1.startDate, pd1.endDate, 
pd2.periodNumber AS 'Period Seq B', pd2.startDate, pd2.endDate,  
pd2.adjustment 
from dbo.PeriodDefinition pd1 
inner join dbo.PeriodDefinition pd2 on pd2.startDate > pd1.startDate and 
pd2.startDate < pd2.endDate 
where (pd1.adjustment =1 AND pd2.adjustment = 1) 

それだけで1行を返し、期間13(期間A)からのデータを表示する必要があり、期間14(期間B )今すぐ3行を返し、結果に13と15を表示しています。私は何が欠けていますか?ありがとうございました!

答えて

1
and pd2.startDate < pd2.endDate 

and pd2.startDate < pd1.endDate 

する必要があります私は

on pd2.startDate between pd1.startDate and pd1.endDate 

を書くでしょう、あなたはまた、おそらく(periodNumberは一意の行識別子であると仮定。)

and pd1.periodNumber != pd2.periodNumber 

をしたい

+0

*ヘッドデスク*校正をお読みいただきありがとうございます! :D – Michelle

関連する問題