2012-07-18 63 views
0
select 
    source_of_data, 
    convert(varchar(10),a.DATECREATED,101), 
    COUNT(*) 
from some_table a 
group by 
    source_of_data, 
    convert(varchar(10),a.DATECREATED,101) 
order by 
    source_of_data, 
    convert(varchar(10),a.DATECREATED,101) 

輸出數據是這樣的:順序分組值

mainframe 4/5/11 22 
mainframe 4/6/11 45 
mainframe n/n/nn nn 
sqlserver 4/5/11 44 
sqlserver 4/6/11 67 
sqlserver n/n/nn nn 

但我所要的輸出是這樣的:

mainframe 4/5/11 22 
sqlserver 4/5/11 44 
mainframe 4/6/11 45 
sqlserver 4/6/11 67 
mainframe n/n/nn nn 
sqlserver n/n/nn nn 

這樣我可以很容易地直觀檢查如果任何特定日期的分組條目丟失 - 比如說某天我們會得到大型機數據,但sqlserver數據丟失。有人可以幫助修改查詢,所以我不必訴諸寫一個存儲過程來實現我的目標?

回答

0

如果我理解正確的,只是切換您的訂單通過向

convert(Date, a.DATECREATED,101), source_of_data 

那麼你的結果應該出來了,你如何描述

編輯:將其轉換爲varchar,預期將無法正常工作。將其轉換爲DATE類型。

+0

THX。看起來我有一個腦凍結。 – Gullu 2012-07-18 18:06:35

+0

沒有問題,我們都有那些日子 – King 2012-07-18 18:10:33

0

剛剛嘗試這一點

select 
     source_of_data, 
     convert(varchar(10),a.DATECREATED,101), 
     COUNT(*) 
    from some_table a 
    group by 
     source_of_data, 
     convert(varchar(10),a.DATECREATED,101) 
    order by 
    COUNT(*)