sql 實現日期的補全工作

2021-06-16 04:16:31 字數 1487 閱讀 5687

問題背景:一商場,每天都有銷售,但由於季節性原因(主要影響月)或者某些原因(主要影響日),導致按月或日統計某商品銷售額時,日期缺失。

一、關於月缺失:如空調器按月統計出現如下狀態:

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後統計

MySQL 補全缺失的日期

將缺失的日期建立出來 建立乙個表用來儲存0 9的數字 insert into num i values 0 1 2 3 4 5 6 7 8 9 生成0 9的數字,方便以後計算時間 create table ifnot exists calendar datelist date 生成乙個儲存日期的表,...

sql有關日期的實現

在兩個日期範圍裡所跨越那幾周返回如 1,2表是第一周和第二週,declare aa table date datetime,weekdays int declare i int set i datediff day,bdate,edate while i 0 begin insert aa valu...

sql 查詢幾個工作日之後的日期

之前在網路查詢了一下關於使用sql 查詢 幾個工作日之後的日期 的問題,大意就是,假設今天是週三 2014 08 27 三個工作日之後 包含週三 就是周五 20140929 四個工作日之後,就是下周一 20140901 如果遇到法定節假日,則當週末處理 如周一是中秋節,則周一不算是工作日 看了好幾個...