将列添加到临时表时遇到问题?

时间:2014-04-02 16:33:01

标签: sql sql-server sql-server-2008

拥有以下图片

data

我必须在临时表上创建另一个名为unit的列,如果STTOT>该列将存储来自STUNM的值。 0和STMATR<> 'FR',但如果STTOT只有正值,其中STMATR ='FR'(如上图所示)我将需要来自STUNM的值,所有按STTCKT分组

这是我目前的代码。如果STTOT只有STMATR ='FR'的正值,那么现在将它留空。(也许这个帮助,我的临时表中的列rev会返回STTOT汇总STMATR<>'FR')

select sttckt
    ,stcomp
    ,stdate
    ,stwway
    ,stvoid
    ,rwdesc
    ,stlndf
    ,cslnam
    ,cvar6
    ,cblnam
    --,unit=max(case when(sttot >0 and stmatr<>'FR') then stunm else '' end)
    ,yd=max(case when(stunm ='YD' and stmatr<>'FR') then stqty else 0 end)
    ,tn=max(case when(stunm ='TN' and stmatr<>'FR') then stqty else 0 end)
    ,ea=max(case when(stunm ='EA') then stqty else 0 end)
    ,rev=sum(case when(stmatr<>'FR' and sttot >=0) then sttot else 0 end)
    ,disp=sum(case when(stmatr<>'FR'and sttot <=-1) then sttot else 0 end)
    ,fr=sum(case when(stmatr='FR' and sttot >=0) then sttot else 0 end)
from #Test where [STTCKT] = 126601
group by sttckt,
    stcomp,
    stdate,
    stwway,
    stvoid,
    rwdesc,
    stlndf,
    cslnam,
    cblnam,
    cvar6

0 个答案:

没有答案