select yue,isnull(sum(销售量),0)
from (
select 1 as id,1 as yue,'2003-01-01' start,'2003-02-1' enddate union
select 2 as id,2 as yue,'2003-02-01' start,'2003-03-1' enddate union
select 3 as id,3 as yue,'2003-03-01' start,'2003-03-1' enddate union
select 4 as id,4 as yue,'2003-04-01' start,'2003-05-1' enddate union
select 5 as id,5 as yue,'2003-05-01' start,'2003-06-1' enddate union
select 6 as id,6 as yue,'2003-06-01' start,'2003-07-1' enddate union
select 7 as id,'小计' as yue,'2003-01-01' start,'2003-07-1' enddate union
select 8 as id,7 as yue,'2003-7-01' start,'2003-08-1' enddate union
select 9 as id,8 as yue,'2003-08-01' start,'2003-09-1' enddate union
select 10 as id,9 as yue,'2003-09-01' start,'2003-10-1' enddate union
select 11 as id,10 as yue,'2003-10-01' start,'2003-11-1' enddate union
select 12 as id,11 as yue,'2003-11-01' start,'2003-12-1' enddate union
select 13 as id,12 as yue,'2003-12-01' start,'2004-01-1' enddate union
select 14 as id,'小计' as yue,'2003-07-01' start,'2004-01-1' enddate union
select 15 as id,'合计' as yue,'2003-01-01' start,'2004-01-1' enddate  ) a
 left join table
on  insert_time >=start and insert_time <=enddate and 商品名称=''
group by id,yue
order by id

解决方案 »

  1.   

    select yue,isnull(sum(销售量),0)
    from (
    select 1 as id,'1' as yue,'2003-01-01' start,'2003-02-1' enddate union
    select 2 as id,'2' as yue,'2003-02-01' start,'2003-03-1' enddate union
    select 3 as id,'3' as yue,'2003-03-01' start,'2003-03-1' enddate union
    select 4 as id,'4' as yue,'2003-04-01' start,'2003-05-1' enddate union
    select 5 as id,'5' as yue,'2003-05-01' start,'2003-06-1' enddate union
    select 6 as id,'6' as yue,'2003-06-01' start,'2003-07-1' enddate union
    select 7 as id,'小计' as yue,'2003-01-01' start,'2003-07-1' enddate union
    select 8 as id,'7' as yue,'2003-7-01' start,'2003-08-1' enddate union
    select 9 as id,'8' as yue,'2003-08-01' start,'2003-09-1' enddate union
    select 10 as id,'9' as yue,'2003-09-01' start,'2003-10-1' enddate union
    select 11 as id,'10' as yue,'2003-10-01' start,'2003-11-1' enddate union
    select 12 as id,'11' as yue,'2003-11-01' start,'2003-12-1' enddate union
    select 13 as id,'12' as yue,'2003-12-01' start,'2004-01-1' enddate union
    select 14 as id,'小计' as yue,'2003-07-01' start,'2004-01-1' enddate union
    select 15 as id,'合计' as yue,'2003-01-01' start,'2004-01-1' enddate  ) a
     left join table
    on  insert_time >=start and insert_time <=enddate and 商品名称=''
    group by id,yue
    order by id
    yue                                           
    ---- ---------------------------------------- 
    1    50964.0000
    2    28468.9000
    3    .0000
    4    .0000
    5    .0000
    6    .0000
    小计   79432.9000
    7    .0000
    8    .0000
    9    .0000
    10   .0000
    11   .0000
    12   .0000
    小计   .0000
    合计   79432.9000(所影响的行数为 15 行)