2010-06-11 3 views

risposta

2

E ' aiuterebbe a vedere la query completa in questione. Per ogni valore di data esistente in stats, è necessario ottenere NULL per la somma o un valore intero. Se stai raggruppando per [Data] e un determinato valore di data non esiste, ovviamente non verrà visualizzato. Per esempio, si consideri il seguente test:

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] 

Il risultato dovrebbe essere simile:

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 

Nota ho ancora una fila anche quando Sum(Clicks) è nullo. È che stai unendo queste informazioni a qualcos'altro sul calcolo Sum(Clicks)?

0

Dato che si sta eseguendo un gruppo per data, presumo che si disponga di più di un record per data. Penserei che dovresti ifnull sui dati originali, altrimenti ne perderai alcuni.

Per esempio, se 10 giugno ha avuto conti di 10, 20, 30 e null, si otterrebbe nulla, invece di 60.

Penso che questo impedirà che problema:

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