2010-06-11 60 views
6

我做:mysql的顯示由報表組中的空值

select sum(clicks), 
      date 
    from stats 
group by date 

...當和空對某些然而迄今爲止,整排被丟棄,我想看看:| null | some_date |,怎麼這樣做?

+0

這將有助於查看有問題的完整查詢 – Thomas 2010-06-11 13:37:48

回答

2

它將有助於查看有問題的完整查詢。對於stats中存在的每個日期值,您應該爲Sum或整數值獲取NULL。如果按[日期]分組,並且給定的日期值不存在,則顯然不會顯示。例如,請考慮以下測試:

Create Table Test (Clicks int null, [Date] datetime null) 
Insert Test(Clicks,[Date]) Values(1,'2010-06-06') 
Insert Test(Clicks,[Date]) Values(2,Null) 
Insert Test(Clicks,[Date]) Values(3,'2010-06-06') 
Insert Test(Clicks,[Date]) Values(4,'2010-06-07') 
Insert Test(Clicks,[Date]) Values(4,Null) 
Insert Test(Clicks,[Date]) Values(4,'2010-06-07') 
Insert Test(Clicks,[Date]) Values(Null,'2010-06-08') 

Select T.[Date], Sum(Clicks) 
From Test T 
Group By T.[Date] 

結果應該是這樣的:

NULL      6 
2010-06-06 00:00:00.000 4 
2010-06-07 00:00:00.000 8 
2010-06-08 00:00:00.000 NULL 

注意我仍然獲得了一行,即使Sum(Clicks)爲空。您是否將這些信息加入Sum(Clicks)計算中的其他信息?

0

由於您按日期進行了分組,因此我假設您每個日期有多個記錄。我想你會不得不對原始數據ifnull,否則你會失去一些。

例如,如果6月10日有10個,20個,30和空計數,你會得到空的,而不是60

我認爲這將防止問題:

select ifnull(sum(ifnull(clicks,0)), 'null'), date from stats group by date;