码迷,mamicode.com
首页 > 其他好文 > 详细

生成最近几个月的临时表

时间:2015-05-06 17:10:21      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:

最近存储过程用到要显示最近几个月的数据,但是存储的数据可能不是每个月都有。因此需要事先生成一个最近几个月连续的表,然后与数据表左连接。

月份
2015-01
2015-02
2015-03
2015-04
2015-05

+

月份 数据
2015-01  234.1
2015-02  253.2
2015-03  243.4
2015-05  264.1

=

月份 数据
2015-01 234.1
2015-02 253.2
2015-03 243.4
2015-04 0
2015-05 264.1

 

 

 

 

 

创建临时表

CREATE TABLE #TEMP(MONTHDATA VARCHAR(7))
DECLARE @N INT = 5
WHILE @N>0
BEGIN
INSERT INTO #TEMP(MONTHDATA)SELECT CONVERT(VARCHAR(7),DATEADD(MM,0-@N+1,GETDATE()),120)
SET @N-=1 
END

获取月份连续的表

SELECT #TEMP.MONTHDATA,TB.VALUEDATA FROM #TEMP LEFT JOIN TB ON #TEMP.MONTHDATA=TB.MONTHDATA

最后记得Drop临时表

生成最近几个月的临时表

标签:

原文地址:http://www.cnblogs.com/ecosu/p/4482380.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!