SQL Server 2008 R2——当前日期下,一年前数据的统计值

=================================版权声明=================================

版权声明:原创文章 谢绝转载 

请通过右侧公告中的“联系邮箱(wlsandwho@foxmail.com)”联系我

勿用于学术性引用。

勿用于商业出版、商业印刷、商业引用以及其他商业用途。                

本文不定期修正完善。

=======================================================================

没啥说的,鄙视那些无视版权随意抓取博文的爬虫小网站,祝你们早升极乐。

=======================================================================

这是企鹅群里一群友的问题。早晨9:13入群问问题,然后可以等一天,真佩服。

当然本着拒绝伸手党的原则,我给的代码只是大致的一个解决方案,并不使用给出的字段、数据以及边界范围。

=======================================================================

完整代码如下

=======================================================================

CTE分了三个部分:

第一部分增加YYYYMM,因为直接用DATETIME类型进行操作感觉不方便。

投机取巧的地方是把DATETIME转作整数类型的“年+月”处理,“年+月”是YYYYMM的样式,不包含DD。年月的大小跟数字的大小自然契合,方便比较。

第二部分按YYYYMM分组进行了数据统计。

第三部分只是我不想写成存储过程,就顺便写了个选择语句,用途是生成“当前日期的一年前”这个概念涉及到的边界值。很显然可以方便的对边界进行包含和不包含的处理。

=======================================================================

下面是执行计划,看起来还不错,当然我的数据很少。

=======================================================================

非专业SQL 不求高效 但求能跑

(友情支持请扫描这个)

微信扫描上方二维码捐赠