サンプルデータと望ましい結果が役立ちます。 「個別」と言うときは、グループ化を意味すると思います。 WHERE 句では、 @from および @to パラメータの時間コンポーネントが正しく設定されていることを確認する場合 (毎日全体を含めるために)、Order.OrderDate をキャストする必要はありません。比較の左側にキャスト操作を適用することは決して良い考えではありません。
SELECT --cast(Orders.OrderDate as date), Products.ProductId SUM(OrderDetails.OrderDetailQuantity) AS totalOrdered, FROM Orders INNER JOIN OrderDetails ON Orders.OrderId = OrderDetails.OrderId INNER JOIN Products ON OrderDetails.ProductId = Products.ProductId where Orders.OrderDate between cast(@from as date) AND cast(@to as date) GROUP BY --cast(Orders.OrderDate as date), Products.ProductId -- to illustrate: declare @From datetime = '1/1/2000 10:30:22', @To datetime = '1/3/2000 9:11:31' declare @orders table (i int, dt datetime) insert into @orders values(1, '1/1/2000 8:00'),(2, '1/2/2000 10:00'), (3, '1/4/2000 3:00') -- only returns i=2 select * from @orders where dt between @From and @To -- returns i=1 & i=2 select * from @orders where dt between cast(@From as date) and cast(@To as date)
プレ>