SELECT
jiraissue.Assignee,
CASE WHEN MONTH(jiraissue.RESOLUTIONDATE) = 4 THEN COUNT(jiraissue.ID) END AS '/04/2018',
CASE WHEN MONTH(jiraissue.RESOLUTIONDATE) = 5 THEN COUNT(jiraissue.ID) END AS '/05/2018',
CASE WHEN MONTH(jiraissue.RESOLUTIONDATE) = 6 THEN COUNT(jiraissue.ID) END AS '/06/2018',
CASE WHEN MONTH(jiraissue.RESOLUTIONDATE) = 7 THEN COUNT(jiraissue.ID) END AS '/07/2018'
FROM jiraissue
JOIN resolution resolution
ON jiraissue.Resolution = resolution.ID
JOIN issuetype issuetype
ON jiraissue.issuetype = issuetype.ID
JOIN issuestatus issuestatus
ON jiraissue.issuestatus = issuestatus.ID
WHERE
issuestatus.pname IN ('Closed') AND
resolution.pname IN ('Fixed', 'Done') AND
issuetype.pname IN ('Minor Enhancement', 'Root Cause Analysis', 'Support Demand Request')
GROUP BY
Assignee,
MONTH(jiraissue.RESOLUTIONDATE);
这是我的代码。
现在,我要将相似的受让人分组在一起。
答案 0 :(得分:0)
您正在尝试执行透视查询。这是应该工作的版本:
SELECT
jiraissue.Assignee,
COUNT(CASE WHEN MONTH(j.RESOLUTIONDATE) = 4 THEN 1 END) AS '/04/2018',
COUNT(CASE WHEN MONTH(j.RESOLUTIONDATE) = 5 THEN 1 END) AS '/05/2018',
COUNT(CASE WHEN MONTH(j.RESOLUTIONDATE) = 6 THEN 1 END) AS '/06/2018',
COUNT(CASE WHEN MONTH(j.RESOLUTIONDATE) = 7 THEN 1 END) AS '/07/2018'
FROM jiraissue j
INNER JOIN resolution r
ON j.Resolution = r.ID
INNER JOIN issuetype it
ON j.issuetype = it.ID
INNER JOIN issuestatus is
ON j.issuestatus = is.ID
WHERE
is.pname = 'Closed' AND
r.pname IN ('Fixed','Done') AND
it.pname IN ('Minor Enhancement', 'Root Cause Analysis', 'Support Demand Request')
GROUP BY
j.Assignee;
查询背后的基本思想是我们根据解决日期的月份进行条件计数。
请注意,如果可以将每个月报告为单独的行(而不是列),那么您只需在受让人和月份上进行GROUP BY
。该查询的编写也将更加简单。