【发布时间】:2014-01-30 16:49:53
【问题描述】:
CREATE TABLE #A (Type Char(20),ID INT, ID2 int,Address VARCHAR(10))
INSERT INTO #A (Type,ID, ID2,Address)
VALUES ('Child',101,290,'CAT'),
('Child',102,290,'CAR'),
('Self',290,290,'CAT')
,('Spouse',103, 777,'DOE')
,('Self',777,777,'DOE')
,('Self',811,NULL,'yyy')
所以,ID 在#A 中是唯一的,ID2 是分组的,所以记录 1-3 在一组中,4-5 在一组中,依此类推。 我想在哪里显示所有“ID” (i) 对于每个组,如果所有记录的地址都相同,我想获取 type = 'self' 的 ID (ii)如果每个组,如果少数记录的地址不同,我想获取自己的ID和地址不同的其他记录的ID。 (iii) 如果没有组,即 ID2 为空,我想要记录的 ID。
所以,输出应该是
102
290
777
811
消除 ID 101,因为 290 具有相同的地址并且它们属于同一组。 保持290,因为它是自我。
谢谢!
【问题讨论】: