SQL Server 2008 R2 で作業しています。と という 2 つのテーブルがTblGroup
ありTblComplatedDetails
ます。
TblGroup には、グループの名前が含まれてMemberId
おりGroupType (i.e. in Daily, Weekly, Start, End)
、完全な日時TblComplatedDetails
が含まれています。ここで、TblCompletedDetails にレコードがない場合にのみ、グループの AND "Start" タイプを除くGroupId (i.e. foreign key of TblGroup)
特定のすべてのグループが必要です。したがって、レコード セットは次のようになります。MemberId
GroupType="End"
TblGroup
==================================
Id MemberId GroupType
==================================
1 1 Daily
2 2 Daily
3 3 Daily
4 1 Weekly
5 1 Start
6 2 Weekly
7 2 Start
8 2 End
9 1 End
10 1 End
TblCompletedDetails
======================================
Id GroupId CompletedDate
======================================
1 1 xxxxxxxxxxxxxx
2 2 xxxxxxxxxxxxxx
3 3 xxxxxxxxxxxxxx
4 4 xxxxxxxxxxxxxx
5 1 xxxxxxxxxxxxxx
6 2 xxxxxxxxxxxxxx
7 3 xxxxxxxxxxxxxx
8 5 xxxxxxxxxxxxxx
9 6 xxxxxxxxxxxxxx
したがって、MemberId = 1 の場合、目的のグループは次のようになります。
=======
GroupId
=======
1
4
しかし、MemberId = 2 の場合、望ましい結果は次のとおりです。
=======
GroupId
=======
2
6
7
7 は、TblCompletedDetails に外部キーを持たないグループの「開始」タイプであるためです。誰でも考えられますか?貴重なご回答をお待ちしております。