【发布时间】:2011-12-06 16:14:18
【问题描述】:
我在 SQL Server DB 中有表:
ID Open_date Close_date
1 01-01-2010 01-03-2010
2 21-01-2011 12-02-2011
3 01-03-2010 NULL
4 10-01-2010 NULL
我需要做一些将返回的 T-SQL 查询:
Month Year Open Close
01 2010 2 0
02 2010 0 0
03 2010 0 1
04 2010 0 0
05 2010 0 0
06 2010 0 0
07 2010 0 0
08 2010 0 0
09 2010 0 0
10 2010 0 0
11 2010 0 0
12 2010 0 0
01 2011 1 0
02 2011 0 1
结果集中的条目数等于数据库中表的“Open_date”和“Close_date”列的最小值与相同列的最大值之间的月数。问题是如何从两个日期列中找到最小值和最大值,然后生成从最小值到最大值的日期,然后使用这个临时表(或它将是什么)来计算临时表中每个日期的打开和关闭条目数。
【问题讨论】:
-
您为什么将 ID 计为 2010 年 1 月关闭?
-
对不起,我的错误。已更正。
-
我认为 2010 年 3 月的行应该是 1, 1 而不是 0, 1 以反映记录 #3?
-
@Tarwn - 是的,我也看到了记录#3,它应该是 1 Open 和 1 Close
标签: sql sql-server tsql sql-generation