問題背景:一商場,每天都有銷售,但由於季節性原因(主要影響月)或者某些原因(主要影響日),導致按月或日統計某商品銷售額時,日期缺失。
一、關於月缺失:如空調器按月統計出現如下狀態:
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 如果遇到法定節假日,則當週末處理 如周一是中秋節,則周一不算是工作日 看了好幾個...