数据库环境:SQL SERVER 2008R2
有一个数据表,只有2个字段,一个是日期字段,另一个是数据字段,其中,
日期字段的日期是不连续的。要求:补全日期,对应的数据为上一个日期的数据除于7。
现有数据如图1,
实现的效果如图2(数据太多,已省略部分)
实现思路:
1.用数字辅助表补全缺失的日期
2.将当前开始补录日期到下一个补录日期之间的日期视为一组,不包括下一个补录日期
3.分析函数求得分组内的最大数据,并计算结果
建表,导入测试数据
CREATE TABLE test(cdate DATE,num NUMERIC(6,2)) INSERT INTO test VALUES ('2015-10-03','21') INSERT INTO test VALUES ('2015-10-10','49') INSERT INTO test VALUES ('2015-10-17','147') INSERT INTO test VALUES ('2015-10-24','63')