select v_ytj.byfcje,v_ytj.pzbh,ytj.fcje,ytj.pzbh
from dbo.v_ytj left join (select pzbh,sum(sl*pjdj) as fcje
from clkj.sccb
where year=2006 and month=10 and cklx="007002"
group by pzbh ) as ytj  on (v_ytj.pzbh=ytj.pzbh)
where v_ytj.cklx="007002" and v_ytj.year=2006 and v_ytj.month=10 and v_ytj.byfcje<>ytj.fcje;
怎么可以截取ytj中fcje计算列的数值保持小数点后两位。原来pjdj字段小数点后有3位。谢谢!

解决方案 »

  1.   

    --改改
    --显形指定
    select v_ytj.byfcje,v_ytj.pzbh,cast(ytj.fcje as decimal(9,3)),ytj.pzbh
    from dbo.v_ytj left join (select pzbh,sum(sl*pjdj) as fcje
    from clkj.sccb
    where year=2006 and month=10 and cklx="007002"
    group by pzbh ) as ytj  on (v_ytj.pzbh=ytj.pzbh)
    where v_ytj.cklx="007002" and v_ytj.year=2006 and v_ytj.month=10 and v_ytj.byfcje<>ytj.fcje;
      

  2.   

    --汗自己一个:搞错了!select v_ytj.byfcje,v_ytj.pzbh,cast(ytj.fcje as decimal(9,2)),ytj.pzbh
    from dbo.v_ytj left join (select pzbh,sum(sl*pjdj) as fcje
    from clkj.sccb
    where year=2006 and month=10 and cklx="007002"
    group by pzbh ) as ytj  on (v_ytj.pzbh=ytj.pzbh)
    where v_ytj.cklx="007002" and v_ytj.year=2006 and v_ytj.month=10 and v_ytj.byfcje<>ytj.fcje;
      

  3.   

    四舍五入的
    select left(round(sum(sl*pjdj),2),len(sum(sl*pjdj))-1) as fcje
    截断的
    select left(round(sum(sl*pjdj),2),len(sum(sl*pjdj))-1,1) as fcje