問題追跡データベースがあります。ある日付範囲内で、毎日オープンおよびクローズされたすべての問題のレポートを提供できる必要があります。
一度に 1 つの列の結果を生成することができました... すべて開いているか、すべて閉じています。実際には 1 つのレポートであるのに、結果を 2 つの部分に分けて提供する必要があるのではなく、すべてを 1 つのショットで行いたいと考えています。
問題の列は、dteOpen (日時)、dteClosed (日時) です。
これが、開封済みのものをすべて返品するために持っているものです。
Declare @dt1 datetime = '1/1/1900',
Declare @dt2 datetime = '1/1/1900',
Declare @tT int = 0IF OBJECT_ID('tempdb..#TempDate') IS NoT NULL
DROP TABLE #TempDate
;WITH ctedaterange
AS (SELECT [rn]=Row_number()
OVER(
ORDER BY (SELECT NULL))
FROM sys.objects a
CROSS JOIN sys.objects b
CROSS JOIN sys.objects c
CROSS JOIN sys.objects d)
SELECT CAST(Dateadd(dd, rn, @dt1) AS DATE) As DateRange
into #TempDate
FROM ctedaterange
WHERE [rn] <= Datediff(dd, @dt1, @dt2)
Select td.DateRange,Count(ID)as countNumber
from #TempDate td
LEFT outer JOIN tblProblemslist pl
ON CAST(pl.dtmOpen AS DATE) = td.DateRange
AND dtmOpen between @dt1 and @dt2
AND ticketType = @tT
Group by td.DateRange
Order by td.DateRange