我在SQL Server中运行一个简单的查询来获取按月分组的当前年度平均值,因此它返回12行。我需要在第一行中输入去年的TOTAL平均值,在最后一行中输入当前年份的TOTAL平均值,因此它将变为14行。
这是我的查询:
SELECT
COUNT(*) AS mes
FROM
WorkOrder
WHERE
workOrderSource = '02'
AND YEAR(workOrderDate) = 2018
AND conclusionDate IS NULL
GROUP BY
MONTH(workOrderDate);
我应该如何传递动态年份,并在过去和当前年度总计中将2个额外行添加到我的查询中?
结果应该有14行;第一行是去年的平均值,最后一行,将是当年的平均总数
试试这种方式:
SELECT COUNT(*) AS mes, null
FROM WorkOrder
WHERE workOrderSource = '02'
AND YEAR(workOrderDate) = 2018
AND conclusionDate IS NULL
UNION ALL
SELECT COUNT(*), MONTH(workOrderDate)
FROM WorkOrder
WHERE workOrderSource = '02'
AND YEAR(workOrderDate) = 2019
AND conclusionDate IS NULL
GROUP BY ROLLUP(MONTH(workOrderDate))
ORDER BY COALESCE(MONTH(workOrderDate), 13)