ユニオンオールクエリがあります。しかし、結果セットには 2 つの P1 レコードと 3 つの P2 レコードがあります。値がなくても 3 つの P3 レコードを表示したいと思います。
以下の私のコードを見てください
SELECT 'P1' AS Priority,
Count(*) Total,
CONVERT(VARCHAR(5), Datepart(yyyy, logdate))
+ RIGHT('00'+ CONVERT(VARCHAR(5), Datepart(mm, logdate)), 2)
FROM dbo.mg_rpt_calls
WHERE priority = 'P1'
AND CONVERT(VARCHAR(5), Datepart(yyyy, logdate))
+ RIGHT('00'+ CONVERT(VARCHAR(5), Datepart(mm, logdate)), 2) BETWEEN
CONVERT(VARCHAR(5), Datepart(yyyy, Getdate()))
+ RIGHT(
'00'+ CONVERT(VARCHAR(5), Datepart(mm, Getdate())-2), 2)AND
CONVERT(
VARCHAR(5), Datepart(yyyy, Getdate()))
+
RIGHT
('00'+ CONVERT(VARCHAR(5), Datepart(mm, Getdate())), 2)
GROUP BY CONVERT(VARCHAR(5), Datepart(yyyy, logdate))
+ RIGHT('00'+ CONVERT(VARCHAR(5), Datepart(mm, logdate)), 2)
UNION ALL
SELECT 'P2' AS Priority,
Count(*) Total,
CONVERT(VARCHAR(5), Datepart(yyyy, logdate))
+ RIGHT('00'+ CONVERT(VARCHAR(5), Datepart(mm, logdate)), 2)
FROM dbo.mg_rpt_calls
WHERE priority = 'P2'
AND CONVERT(VARCHAR(5), Datepart(yyyy, logdate))
+ RIGHT('00'+ CONVERT(VARCHAR(5), Datepart(mm, logdate)), 2) BETWEEN
CONVERT(VARCHAR(5), Datepart(yyyy, Getdate()))
+ RIGHT(
'00'+ CONVERT(VARCHAR(5), Datepart(mm, Getdate())-2), 2)AND
CONVERT(
VARCHAR(5), Datepart(yyyy, Getdate()))
+
RIGHT
('00'+ CONVERT(VARCHAR(5), Datepart(mm, Getdate())), 2)
GROUP BY CONVERT(VARCHAR(5), Datepart(yyyy, logdate))
+ RIGHT('00'+ CONVERT(VARCHAR(5), Datepart(mm, logdate)), 2)
ORDER BY CONVERT(VARCHAR(5), Datepart(yyyy, logdate))
+ RIGHT('00'+ CONVERT(VARCHAR(5), Datepart(mm, logdate)), 2)
私の結果セットは以下です
Priority Total (No column name)
P2 9 201209
P2 15 201210
P1 1 201210
P1 1 201211
P2 5 201211
ありがとう、マイケル