我有一个表格,其中的行符号表示订单日期:
2009-05-15 13:31:47.713
2009-05-15 22:09:32.227
2009-05-16 02:38:36.027
2009-05-16 12:06:49.743
2009-05-16 16:20:26.680
2009-05-17 01:36:19.480
2009-05-18 09:44:46.993
2009-05-18 14:06:12.073
2009-05-18 15:25:47.540
2009-05-19 10:28:24.150
Run Code Online (Sandbox Code Playgroud)
我想要查询返回以下内容:
2009-05-15 2
2009-05-16 5
2009-05-17 6
2009-05-18 9
2009-05-19 10
Run Code Online (Sandbox Code Playgroud)
基本上它保持在所示日期结束时所有下达的订单的总计.订单不是当天的订单,而是自表格中最早日期以来的所有订单.
这是MSSQL 2000,第一个表中的数据类型只是日期时间,在第二个表中可能是datetime或string,它对我的目的并不重要.
我得到了这个在SQL Server 2005上工作.我认为它也适用于2000.
SELECT dt, count(q2.YourDate)
FROM (SELECT DISTINCT CONVERT(varchar,YourDate,101) dt FROM YourTable) t1
JOIN YourTable q2 ON DATEADD(d,-1,CONVERT(varchar,YourDate,101)) < dt
GROUP BY dt
Run Code Online (Sandbox Code Playgroud)
这将查询表两次,但至少给出正确的输出.