2010-06-11 5 views

Répondre

2

Il aiderait à voir la requête complète en question. Pour chaque valeur de date qui existe dans stats, vous devez obtenir NULL pour la somme ou une valeur entière. Si vous groupez par [Date] et qu'une valeur de date donnée n'existe pas, elle n'apparaîtra évidemment pas. Par exemple, considérer le test suivant:

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] 

Les résultats devraient ressembler à:

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 

Remarque je reçois toujours une ligne, même lorsque Sum(Clicks) est nulle. Est-ce que vous joignez cette information à quelque chose d'autre sur le calcul Sum(Clicks)?

0

Étant donné que vous effectuez un groupe par date, je suppose que vous avez plusieurs enregistrements par date. Je pense que vous auriez à ifnull sur les données d'origine, ou vous perdrez certains.

Par exemple, si le 10 juin avait compte de 10, 20, 30 et null, null vous obtiendriez au lieu de 60.

Je pense que cela empêchera cette question:

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