tsql - 返回 T-SQL 中两个日期之间的月/年

我在单个表中有包含开始日期和结束日期的记录。

我需要调整它,以便我在 X 上有几年,在 Y 上有几个月......

         1     2     3    4    5    6    7    8    9    10    11    12
2000   123   123   123  123  123  123  123  123  123   123   123   123
2001   123   123   123  123  123  123  123  123  123   123   123   123
2002   123   123   123  123  123  123  123  123  123   123   123   123
2003   123   123   123  123  123  123  123  123  123   123   123   123

...考虑到在矩阵中的位置(年/月)中月/日落在记录的开始/结束日期内,可能被视为“活跃”的项目计数。

我已经为另一项任务管理了基于单个日期的 PIVOT,但这本质上是日期范围内的 PIVOT,包括开始/结束日期之间的每个日期!

T-SQL 中有什么我不知道的东西可以实现这一点吗?

最佳答案

使用经典 PUBS 数据库中的销售表,您可以获得按年、按月的订单数量,并提供以下信息:也许您可以从那里得出您要查找的内容。

select y, [1] as January,
            [2] as February, 
            [3] as March,
            [4] as April, 
            [5] as May, 
            [6] as June, 
            [7] as July, 
            [8] as August, 
            [9] as September, 
            [10] as October, 
            [11] as November, 
[12] as December 
from  (select ord_num, 
        DATEPART(year,ord_date)as y,
        DATEPART(month, ord_date) as m from sales) as p
 pivot (count(ord_num) for m in ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])) as pvt
 order by pvt.y

https://stackoverflow.com/questions/8976136/

相关文章:

objective-c - 在 objective-c 中获取颜色分量

css - 使用 CSS 选择类下面的类

mercurial - 替换 hg 分支的内容

asp.net-mvc-3 - MVC 3 POST 数据和 Id 字段

matplotlib - 如何更改 matplotlib 3D 图轴的颜色?

asp.net-mvc - 我怎样才能通过 LCID 获得文化

python-2.7 - Python None 如果检查失败

objective-c - Ada 支持 put_line 中的变量吗?

google-maps - 谷歌地图标记仅在 iPhone/iPad 上在特定缩放级别消失

php - FOS 用户包安装错误