我已經寫了下面的查詢,但它沒有在日期上正確分組,並返回2行,實際上應該由GROUP BY
合併爲一行。GROUP BY正在返回錯誤的值?
select i.overridedate,
month(i.Overridedate),
count(i.id)as count,
sum(case when oi.rating <50 then 1 else 0 end) as unfav,
sum(case when oi.Rating =50 then 1 else 0 end) as neu,
sum(case when oi.Rating >50 then 1 else 0 end) as fav,
avg(oi.Rating)as 'Av Rating'
from Items i (nolock)
inner join ItemOrganisations oi (nolock) on i.ID= oi.ItemID
inner join Lookup_ItemTypes it (nolock) on it.ID = i.ItemTypeID
inner join Batches b (nolock) on b.ID=i.BatchID
inner join Lookup_ItemStatus lis (nolock) on lis.ID = i.StatusID
inner join Lookup_BatchStatus lbs (nolock) on lbs.ID = b.StatusID
inner join Lookup_BatchTypes bt on bt.id = b.Typeid
where lbs.Name = 'Completed by Analyst'
or lbs.Name='Delivered/Imported into Neptune Online'
and lis.Name = 'Complete'
and i.IsRelevant = 1
and bt.Name = 'Live'
group by i.overridedate, Month(i.OverrideDate)
having i.OverrideDate between '2012-07-01 00:00:00.000' and '2012-09-30 00:00:00.000'
正如你所看到的,最後兩行代表了7個月的數據不會被分組:
NULL NULL 1 0 1 0 1 55
2013-01-03 00:00:00.000 1 1 1 0 0 10
2012-05-28 00:00:00.000 5 7 1 0 1 50
2012-06-01 00:00:00.000 6 7 1 0 0 20
2012-07-10 00:00:00.000 7 1 0 0 0 NULL
2012-07-11 00:00:00.000 7 8 1 0 6 66
刪除i.overridedate從你的SELECT和GROUP BY語句。如果需要添加YEAR。 – sgeddes 2013-02-26 16:12:02
@sgeddes像這樣的評論應該張貼爲答案;-) – Lamak 2013-02-26 16:13:33
@sgeddes這應該是一個答案,而不是評論。 – dasblinkenlight 2013-02-26 16:14:59