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语句谢谢
展开
 我来答
百度网友2dca20d
推荐于2016-07-31 · TA获得超过4036个赞
知道大有可为答主
回答量:2638
采纳率:77%
帮助的人:1022万
展开全部
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表)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式