SQL Server 2008 R2 を使用しており、異なる列で複数のカウントを実行しようとしていますが、正しく動作させる方法がわかりません。独立して機能する 2 つのクエリがありますが、それらを結合しようとすると問題が発生します。@StartDate と @EndDate を通過させながら、個々の日付ごとにオープンおよびクローズされたチケットの数をカウントしようとしています。
たとえば、これが私の最初のクエリです: (チケットが作成されたさまざまな理由を区別するために特定のコードを割り当てます。その行が混乱を招く場合に備えて、それをそこに捨てたかっただけです。また、日付は日時形式であるため、CAST を使用しています)
SELECT
Cast(CreateDate AS Date) AS 'Date',
Count(CreateDate) AS '# Created'
FROM dbo.Tickets
WHERE
Cast(CreateDate AS Date) >= @StartDate and
Cast(CreateDate AS Date) <=@EndDate and
(Reason >= 36 and Reason <= 41 OR Reason = 17)
GROUP BY Cast(CreateDate AS Date)
ORDER BY 'Date'
これにより、次の結果が得られます。
Date # Created
---------- -------------
5/1/2013 396
5/2/2013 418
5/3/2013 288
5/4/2013 28
5/5/2013 100
私の 2 番目のクエリは、"Create Date" クエリとまったく同じですが、"CreateDate" がどこにあるかを "Resolved Date" に置き換えただけです。ただし、2013 年 5 月 4 日に解決されたチケットはありませんでした。
これら 2 つのクエリを 1 つに結合し、以下のような結果セットを返すにはどうすればよいですか?
Date # Created # Resolved
---------- ------------- -------------
5/1/2013 396 400
5/2/2013 418 322
5/3/2013 288 280
5/4/2013 28 0
5/5/2013 100 11
私をうんざりさせているのは、テーブルに 2013 年 5 月 4 日の解決済みの日付がないことだと思います。どんな助けでも大歓迎です。ありがとう!