我有下表
UNIQUEKEY ID Clicks IsProcessed INSERTDATE
1 100001 10 1 2011-05-14 00:00:00.000
2 100001 20 0 2011-05-13 00:00:00.000
3 100001 30 1 2011-05-18 00:00:00.000
4 100002 10 1 2011-05-20 00:00:00.000
5 100002 15 0 2011-05-24 00:00:00.000
6 100002 10 0 2011-05-05 00:00:00.000
我需要一个T-SQL查询,它首先按INSERTDATE(desc)排序 一旦订购,它应该返回一个GROUP by ID和IsProcessed,结果应该显示所有列Orderby并按上述方式分组。
编辑:
因此,如果我们运行查询,让我们说ID 10001
它应该给我2个结果集:
期望的结果:
UNIQUEKEY ID Clicks IsProcessed INSERTDATE
3 100001 30 1 2011-05-18 00:00:00.000
1 100001 10 1 2011-05-14 00:00:00.000
2 100001 20 0 2011-05-13 00:00:00.000
作为关键字的ID
和IsProcessed
的结果,结果按Date (desc)
排序。
任何帮助将不胜感激!
答案 0 :(得分:3)
试试这个:
declare @ID int = 100001
declare @IsProcessed int
declare
crsMy cursor fast_forward for
select
distinct IsProcessed
from
tTest
order by
IsProcessed desc
open crsMy
fetch next from crsMy into @IsProcessed
while @@fetch_status = 0
begin
select
UNIQUEKEY
,ID
,Clicks
,IsProcessed
,INSERTDATE
from
tTest
where
(ID=@ID)
and
(IsProcessed=@IsProcessed)
order by
INSERTDATE desc
fetch next from crsMy into @IsProcessed
end
close crsMy
deallocate crsMy
(在sqlfiddle上只显示第一个结果集。)