У меня есть запрос, который возвращает правильный набор результатов, используя SQL 2005. Он выглядит следующим образом:
select
case
when convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ ' Q' +convert(varchar(2),datepart(qq,bug.datecreated),101) = '1969 Q4' then '2009 Q2'
else convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ ' Q' +convert(varchar(2),datepart(qq,bug.datecreated),101)
end as [Quarter],
bugtypes.bugtypename,
count(bug.bugid) as [Total]
from bug left outer join bugtypes on bug.crntbugtypeid = bugtypes.bugtypeid and bug.projectid = bugtypes.projectid
where
(bug.projectid = 44
and bug.currentowner in (-1000000031,-1000000045)
and bug.crntplatformid in (42,37,25,14))
or
(bug.projectid = 44
and bug.currentowner in (select memberid from groupmembers where projectid = 44 and groupid in (87,88))
and bug.crntplatformid in (42,37,25,14))
group by
case
when convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ ' Q' +convert(varchar(2),datepart(qq,bug.datecreated),101) = '1969 Q4' then '2009 Q2' else convert(varchar(4),datepart(yyyy,bug.datecreated),101)+ ' Q' +convert(varchar(2),datepart(qq,bug.datecreated),101)
end,
bugtypes.bugtypename
order by 1,3 desc
Он производит красиво сгруппированный список лет и кварталов, связанный дескриптор и количество инцидентов в порядке убывания количества. Что я хотел бы сделать, так это отфильтровать это, чтобы оно показывало только 10 наиболее представленных инцидентов в квартал.
Я борюсь с тем, как взять этот набор результатов и добиться этого.