双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

sql实现提取当前月份及当前月份后面5个月的数据,并有跨年度存在

zbasic CSDN会员 zbasic 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
表结构说明
表中包含了某产品08-09年的出货记录,有月份和年份的字段。
需要得到的结果为显示本月份及本月份后面5个月份的数据。如果为9月份的话,将要在结果中添加2009年度
1月份和2月份的数据

table_1
order_id order_year m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 m11 m12 prd_id
1 2008 1 2 3 4 5 6 7 8 9 10 11 12 prd_1
2 2009 11 22 33 44 55 66 0 0 0 0 0 0 prd_1


本月份为4月,那么需要的结果为
order_id prd_id 2008_m4 2008_m5 2008_m6 2008_m7 2008_m8 2008_m9
1 prd_id 4 5 6 7 8 9

如果本月份为9,那么需要的结果为
order_id 2008_m9 2008_m10 2008_m11 2008_m12 2008_m1 2009_m2
1 9 10 11 12 11 22

建表语句如下
create table table_1(order_id smallint,order_year smallint,m1 smallint,m2 smallint,m3 smallint,m4 smallint,m5 smallint,m6 smallint,m7 smallint,m8 smallint,m9 smallint,m10 smallint,m11 smallint,m12 smallint,prd_id char(20))
insert into table_1(order_id,order_year,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,prd_id)
select 1,2008,1,2,3,4,5,6,7,8,9,10,11,12,'prd_1'
union all select 2,2009,11,22,33,44,55,66,0,0,0,0,0,0,'prd_1'
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
zbasic CSDN会员
MS-SQL Server 34,876 成员 254,635 内容