我需要過去24小時,7天期間的結果。我的預期結果需要採用以下格式:最好的方式來在SQL Server中過去7天?
2011-11-05 11 orders $12354.94
2011-11-04 12 orders $12555.72
2011-11-03 5 orders $1000.24
在嘗試使用某些查詢時,我不斷收到不同數量的返回行。例如,下面的查詢:
SELECT CAST(Left(OrderDate,10) as smalldatetime) as PurchaseDate,
COUNT(Orders.WebOrderNumber) as "Rows",
SUM(cast(Orders.Total_Lines_Net AS money)) as Total
FROM Orders
WHERE OrderDate BETWEEN getdate() - 7 AND getdate()
GROUP BY cast(Left(OrderDate,10) as smalldatetime)
ORDER BY cast(Left(OrderDate,10) as smalldatetime)
返回此數據:
PurchaseDate Rows Total
2011-12-01 00:00:00 1539 404798.85
2011-12-02 00:00:00 1572 324963.604
2011-12-03 00:00:00 970 119244.93
2011-12-04 00:00:00 1092 120888.244
2011-12-05 00:00:00 1201 337646.952
2011-12-06 00:00:00 1309 287609.243
2011-12-07 00:00:00 1555 315223.22
我認爲,對於12月1日的行顯得低了,所以我嘗試了不同的查詢:
SELECT SUM(cast(Orders.Total_Lines_Net AS money)) as Total,
COUNT(Orders.WebOrderNumber) as "Rows",
CAST(Left(OrderDate,10) as smalldatetime) as PurchaseDate
FROM Orders
WHERE OrderDate between '2011-12-01 00:00:00' AND + '2011-12-01 23:59:59'
GROUP BY cast(Left(OrderDate,10) as smalldatetime)
哪返回2597行。第一個查詢是否未返回完整的24小時期限?此數據庫中的日期字段爲varchar(255)
,其中包含日期,小時,分鐘和秒數。什麼是正確的方法來做到這一點?
這很好用,但我不知道該語法中發生了什麼。 – broke
「WITH」部分是[Common Table Expression](http://msdn.microsoft.com/en-us/library/ms175972(v = SQL.100).aspx)。 –