2012-10-04 63 views
0

通過和集團執行令我有以下表SQL通過一起

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 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 

立信是IDIsProcessed被作爲重點,其結果是按Date (desc)排序。

任何幫助,將不勝感激!

+0

可以添加你想要的結果? –

+0

更新的問題 –

+0

是不是這樣? 'SELECT * FROM tableNAME ORDER BY ID,IsProcessed,INSERTDATE Desc'? –

回答

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 
    ([email protected]) 
    and 
    ([email protected]) 
    order by 
    INSERTDATE desc 



    fetch next from crsMy into @IsProcessed 
end 

close crsMy 
deallocate crsMy 

sql fiddle

(上sqlfiddle只有第一個結果集顯示。)

+0

你解決John Woo的查詢不是什麼問題? – RichardTheKiwi

+0

「因此,如果我們運行查詢讓我們說ID 10001,它應該給我2結果集」 –

+0

抱歉倍增... @RichardTheKiwi:「所以,如果我們運行查詢讓我們說ID 10001,**它應該給我2個結果集**「。沒有別的不同,就像'IsProcessed'字段中有不同的值一樣,我的答案會創建一個確切數量的結果集。 –