加一个辅助表,存入1到52的数,查询时用左连接
tWeek (w int) 
insert tweek select 1 union select 2 ...... union select 52select a.w, ......
from tweek a left join sellinfo b on a.w=b.datepart(ww,selldate)
where ......
group by a.w

解决方案 »

  1.   

    你是否条件(comNo='001007') and (datediff(yy,'2004-1-1',sellDate) = 0 ) and (sellFlag=0)
    有问题!把比如2,3周给过滤了!所以没有!
      

  2.   

    严重同意 victorycyz(中海) 的想法。
    tWeek (w int) 
    insert tweek select 1 union select 2 ...... union select 52select w as WeekCnt, isNull(sum(sellMoney),0) as SellMoney 
    from
    (select a.w,b.sellmoney
    from tweek a 
    left join sellinfo b 
    on a.w=b.datepart(ww,selldate)
    where (b.comNo='001007') and (datediff(yy,'2004-1-1',b.sellDate) = 0 ) and (b.sellFlag=0)
    ) a
    group by a.w