sql 实现日期的补全工作

问题背景:一商场,每天都有销售,但由于季节性原因(主要影响月)或者某些原因(主要影响日),导致按月或日统计某商品销售额时,日期缺失。

一、关于月缺失:如空调器按月统计出现如下状态:
ny(年月)  mxid(明细类) xse(销售额) ljxse(累计销售额)
200601                        A001             100                   100
200603                        A001             300                   400


200612                        A001             1200                 连续累加...

即缺失200602的纪录,但报表要求按年度每月补全纪录,即使销售额为0,如何实现?
ny(年月)  mxid(明细类) xse(销售额) ljxse(累计销售额)
200601                    A001             100                     100
200602                    A001              0                        100 ---添加缺失的2月
200603                    A001             300                     400


200612                     A001             1200                    连续累加...

二、日缺失,同月缺失一样,如何实现?
    但日同月有很大区别,因为每月的日数是不一样的!

nyr(年月日)  mxid(明细类) xse(销售额) ljxse(累计销售额)
20070701          A001             1           1
20070702          A001             2           3  
20070703          A001             3           7
20070705          A001             5           12 ---缺失的7月4日,需补全!


20070731          A001             31          连续累加...


也就是说对于第一个问题,当我输入年份后(好像是用&+变量组成)和mxid后,生成全部12个月的数据。
对于第二个问题,当我输入年月(如200707)和mxid后,生成该月全部日的数据。

 

 

-----------------------------------------------------------------------------

 

方案:

        1.    生成所有的数据,左连接
       

        2.    或是用另外一张表,每天生成一笔数据,然后,union all后统计

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值