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后统计

你可能感兴趣的:(SQL编程)