sqlserver数据库间断日期补全查询
A表日期金额2014-05-011002014-05-022002014-05-053002014-05-06200需要显示出来的是这样2014-05-011002014...
A表
日期 金额
2014-05-01 100
2014-05-02 200
2014-05-05 300
2014-05-06 200
需要显示出来的是这样
2014-05-01 100
2014-05-02 200
2014-05-03 0
2014-05-04 0
2014-05-05 300
2014-05-06 200
SqlServer数据库,就是把数据库中间断的日期补全,值为0 ,会的大神请写出详细sql语句谢谢 展开
日期 金额
2014-05-01 100
2014-05-02 200
2014-05-05 300
2014-05-06 200
需要显示出来的是这样
2014-05-01 100
2014-05-02 200
2014-05-03 0
2014-05-04 0
2014-05-05 300
2014-05-06 200
SqlServer数据库,就是把数据库中间断的日期补全,值为0 ,会的大神请写出详细sql语句谢谢 展开
1个回答
展开全部
DECLARE @T TABLE(日期 DATE,金额 INT)
DECLARE @D1 DATE,@D2 DATE
SELECT @D1=MIN(日期),@D2=MAX(日期) FROM A表
WHILE @D1<=@D2
BEGIN
INSERT INTO @T VALUES(@D1,0)
SET @D1=DATEADD(DAY,1,@D1)
END
SELECT 日期,金额 FROM A表
UNION ALL
SELECT * FROM @T WHERE 日期 NOT IN(SELECT 日期 FROM A表)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询