select Stock.spbh,Stock.spmc,Stock.jhjg,Stock.spdw,sum(PutStock.PutSubmer) as TPutSubmer,sum(case when 0=0 and year(PutStock.adddate)>=2011 and month(PutStock.adddate)>=11 then PutStock.PutSubmer else 0 end)as xyku,sum(case when 0=0 and year(PutStock.adddate)<=2011 and month(PutStock.adddate)<=10 then PutStock.PutSubmer else 0 end) as sykc,sum(case when 0=0 and year(PutStock.adddate)=2011 and month(PutStock.adddate)=11 then PutStock.PutSubmer else 0 end) as bykc from Stock,PutStock where Stock.ID=PutStock.F_ID GROUP BY Stock.spbh,Stock.spmc,Stock.jhjg,Stock.spdw order by PutStock.TPutSubmer desc
union All
select sum(BPutSubmer) as BPutSubmer from Counter where 0=0 and year(adddate)=2011 and month(adddate)=11

解决方案 »

  1.   

    union的栏位数量要一致字段类型要一样
      

  2.   

    select Stock.spbh,Stock.spmc,Stock.jhjg,Stock.spdw,sum(PutStock.PutSubmer) as TPutSubmer,sum(case when 0=0 and year(PutStock.adddate)>=2011 and month(PutStock.adddate)>=11 then PutStock.PutSubmer else 0 end)as xyku,sum(case when 0=0 and year(PutStock.adddate)<=2011 and month(PutStock.adddate)<=10 then PutStock.PutSubmer else 0 end) as sykc,sum(case when 0=0 and year(PutStock.adddate)=2011 and month(PutStock.adddate)=11 then PutStock.PutSubmer else 0 end) as bykc from Stock,PutStock where Stock.ID=PutStock.F_ID GROUP BY Stock.spbh,Stock.spmc,Stock.jhjg,Stock.spdw order by PutStock.TPutSubmer desc
    union All
    select null,null,null,null,null,null,null,sum(BPutSubmer) as BPutSubmer from Counter where 0=0 and year(adddate)=2011 and month(adddate)=11
      

  3.   

    对不起,语句上传错了
    SELECT PutSubmer=isnull(PutSubmer,0), xyku=isnull(xyku,0), sykc=isnull(sykc,0), bykc=isnull(bykc,0) 
    from
              (SELECT PutSubmer = SUM(CASE WHEN 0 = 0 AND Stock.spmc like '21108043152' THEN PutStock.PutSubmer ELSE 0 END), 
                           xyku = SUM(CASE WHEN 0 = 0 AND year(PutStock.adddate)>= 2011 AND month(PutStock.adddate)>= 11 and  Stock.spmc like '21108043152' THEN PutStock.PutSubmer ELSE 0 END), 
                           sykc = SUM(CASE WHEN 0 = 0 AND year(PutStock.adddate)<= 2011 AND month(PutStock.adddate)<= 10 and  Stock.spmc like '21108043152' THEN PutStock.PutSubmer ELSE 0 END), 
                           bykc = SUM(CASE WHEN 0 = 0 AND year(PutStock.adddate) = 2011 AND  month(PutStock.adddate)= 11 and  Stock.spmc like '21108043152' THEN PutStock.PutSubmer ELSE 0 END)
             FROM Stock, PutStock
             WHERE Stock.ID = PutStock.F_ID) t1
      

  4.   

    使用union all 的select 中的列数要一样多,而且类型要一样或者能够隐式转换