拥有以下图片
我必须在临时表上创建另一个名为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