先月の毎日の 1 時間あたりの注文数を数えたいと思っています。
私は別のレポート (1) からこのWHERE
節を持っています。これは、実行された時点から正しい月「先月」を決定します。
理想的には、日付ではなく時間を「左端」の列として表示したいと思います。
WHERE
内で明確な日を取得し、時間 = 1、2 などの datepart をカウントできると考えました。しかし、(2) の下のこのコードは 300 を超えるレコードにつながります。
(1)
WHERE YEAR(Bookings.PICKUP_DATE)
= YEAR(DATEADD(mm, -1, DATEADD(m, DATEDIFF(m, 0, getdate()), 0)))
AND MONTH(Bookings.PICKUP_DATE)
= MONTH(DATEADD(mm, -1, DATEADD(m, DATEDIFF(m, 0, getdate()), 0)))
(2)
select
distinct(datepart(dd,b.pickup_date)) as DAYOFTHEMONTH
,COUNT(CASE WHEN DATEPART(HH,B.PICKUP_DATE) = 1 THEN 1 ELSE 0 END)