当前位置: 代码迷 >> Sql Server >> 求简略sql 添加记录行
  详细解决方案

求简略sql 添加记录行

热度:171   发布时间:2016-04-24 10:57:52.0
求简单sql 添加记录行
销售记录表如下,有的店在某些月份没有销售,比如11112,11113,11114 都没有3月份(Q1的最后一个月)的销售
storeID    MONTH   SALES
11111               1          20
11111               2          30
11111               3           10
11112               1            10
11112               2             20
11113               1              50
11114                2             40

由于某种需求,需要在数据表里面加行,把3月没有销量的补出(现在4月需要3月份,将来5月需要补4月,其实就是每个月补上个月),sales 为0,上面的数据表变为:
storeID    MONTH   SALES
11111               1          20
11111               2          30
11111               3           10
11112               1            10
11112               2             20
11112               3             0
11113               1              50
11113               3              0
11114                2             40
11114                3              0

求简单sql能够实现,谢谢
------解决方案--------------------
IF EXISTS(SELECT NAME FROM sys.objects AS o WHERE NAME = 'test')
DROP TABLE test
GO
CREATE TABLE test(storeid VARCHAR(10) , months VARCHAR(06) , sales INT)
GO
INSERT INTO test 
SELECT '11111','201401' ,    20 UNION ALL
SELECT '11111','201402' ,    30 UNION ALL
SELECT '11111','201403' ,    10 UNION ALL
SELECT '11112','201401' ,    10 UNION ALL
SELECT '11112','201402' ,    20 UNION ALL
SELECT '11113','201401' ,    50 UNION ALL
SELECT '11114','201402' ,    40 
GO


--执行查询
;WITH a AS(
          SELECT storeid,
                 CONVERT(VARCHAR(04), DATEPART(YEAR, GETDATE())) + CASE 
                                                                        WHEN LEN(CONVERT(VARCHAR(02), s.number)) 
                                                                             = 1 THEN 
                                                                             '0' 
  相关解决方案