【发布时间】:2022-12-08 06:14:40
【问题描述】:
我有 3 个关系表:
表A:
Party_Number Account_Number Email_Code Relation_Code
1111 A00071 null B
1111 A00071 null C
1111 A00071 null D
1111 A00072 140 D
1111 A00073 140 C
1111 A00074 140 C
1111 A00075 null B
表B:
Account_Number Date
A00071 8/8/2020
A00072 null
A00073 null
A00074 null
A00075 null
表C:
Party_Number Email
1111 abc@gmail.com
我需要连接 3 个表才能得到以下结果(仅记录“Relation_Code”为“C”或“D”的位置):
Party_Number Account_Number Email_Code Relation_Code Date Email
1111 A00071 null C 8/8/2020 abc@gmail.com
1111 A00071 null D 8/8/2020 abc@gmail.com
1111 A00072 140 D null abc@gmail.com
1111 A00073 140 C null abc@gmail.com
1111 A00074 140 C null abc@gmail.com
我写了这个查询来得到结果:
Select A.Party_Number, A.Account_Number, A.Relation_Code, A.Email_Code,
B.Date, C.Email
from TableA A, TableB B, TableC C
Where A.Account_Number= B.Account_Number
AND A.Party_Number = C.Party_Number
AND A.Relation_Code in ('C','D')
Order By A.Account_Number
但是可以有具有相同 Account_Number 但不同 Relation_Code('C' 和 'D')的行。例如 (A00071)。
如果有重复的 Account_Number,我只需要选择 Relation_Code 为“D”的 Account_Number。
如何编写 SQL 查询以连接多个表并按条件分组?
【问题讨论】:
标签: sql-server join group-by