私が必要とするものを正確に得ることができません。ここに私のテーブルの例は以下のとおりです。SQL日付範囲の日付が含まれていないレコードを選択する
Plan_ID | PlanBeginDate | PlanEndDate |
1 | 1/1/2015 | 1/1/2016 |
2 | 1/1/2016 | 1/1/2017 |
3 | 1/1/2013 | 1/1/2014 |
4 | 1/1/2015 | 1/1/2016 |
SrvID | Srv_Plan_ID | Srv_Discipline_ID | SrvBeginDate | SrvEndDate |
1 | 1 | 1 | 1/1/2015 | 1/1/2016 |
2 | 1 | 3 | 1/1/2015 | 1/1/2016 |
3 | 2 | 2 | 1/1/2016 | 4/4/2016 |
4 | 2 | 2 | 4/5/2016 | 1/1/2017 |
5 | 3 | 1 | 1/1/2013 | 6/1/2013 |
6 | 3 | 2 | 1/1/2013 | 1/1/2014 |
7 | 4 | 3 | 1/1/2015 | 7/1/2016 |
8 | 4 | 3 | 8/1/2015 | 1/1/2016 |
私はそれに関連して、各個別の規律のためのサービス日付でカバーされていない日付を持っているすべてのプランを見るために探しています。
プラン1は、それに関連する両方の分野がすべての日付をカバーするので、表示しないでください。
2つの関連サービスが同じ規律を持ち、計画期間全体をカバーしているため、プラン2は表示されません。
SrvID 5が計画期間全体をカバーしていないため、Plan 3が一度表示されます。
規律3の7月が明らかになったため、プラン4が表示されます。
上記の基準に従って、次のフィールドを返すselect文が必要です。
Plan_ID | PlanBeginDate | PlanEndDate |Srv_Discipline_ID | SrvBeginDate | SrvEndDate |
ここまでは、これまでの内容です。
Select Plan_ID, Srv_Discipline_ID, PlanBeginningDate, PlanEndDate, MIN(SrvBeginDate) EarliestStartDate, MAX(SrvEndDate) LatestEndDate
From dbo.Plan
JOIN Services
ON Plan_ID = Srv_Plan_ID
GROUP BY Plan_ID, Srv_Discipline_ID, PlanBeginDate, PlanEndDate
ORDER BY Plan_ID
まず
結果、それはMySQLやSQL-Serverです。第二に、何を試しましたか? – user3741598
大変申し訳ございません!これはSQL Serverです。 私はこのサイトを初めて利用しています。私の元の投稿に私の質問を編集します。 –
あなたが私たちに提示している質問はあなたの質問に関連していないようです。表示される表と一致する列名はありません。 –