请参阅下面的DDL:使用SQL或TSQL
CREATE TABLE Groups
(
GroupID integer not null,
Dataset int,
URN int,
DateAdded datetime
)
INSERT INTO Groups(1,1,100,'2010-01-01')
INSERT INTO Groups(1,1,191,'2011-01-01')
INSERT INTO Groups(1,1,65,'2012-01-01')
INSERT INTO Groups(1,2,121,'2013-01-01')
INSERT INTO Groups(2,1,87,'2010-01-01')
INSERT INTO Groups(2,1,1081,'2011-01-01')
INSERT INTO Groups(2,1,32,'2012-01-01')
INSERT INTO Groups(2,1,16,'2013-01-01')
INSERT INTO Groups(2,2,66,'2013-01-01')
我试图返回一个表是这样的:
100 191
100 65
87 1081
87 32
87 16
塔1组ID和列2是URN。列表满足标准:
选自
始终显示最早URN获取为1的数据集中的所有记录(使用dateadded)在第1列(其中,数据集= 1)。在柱2把另一个URN选自(其中数据集= 1)
确保所有的URN(WHERE数据集= 1)从该组中的第2列中出现一次,除了出现在列中的URN 1
我相信我必须以编程方式(使用TSQL)来完成此操作,但是我想知道是否有一种使用SQL的方法。
您的结果不符合你们所要求的。根据你的要求,你应该只能得到2条记录(每组一个)。 – 2015-02-11 21:34:16
@D斯坦利,我编辑了要求,试图使其更加清晰。 – w0051977 2015-02-11 21:37:16
它仍然不匹配。组1中最古老的URN为100,而组2中最古老的URN为78.除了最老的一个,您正在显示所有记录。 – 2015-02-11 21:39:12