我有下面脚本的表格。 我最终想要的数据显示在屏幕截图中。 要实现的逻辑是: 如果SUM(FPR_QTY)> QPA,请在不加总的情况下使用QPA。 否则,请使用FPR_QTY。
例如,对于前4行,TOT_FPR> QPA,所以我只需要1。
对于其余4行,TOT_FPR 如果我的解释不清楚,请让我知道。 create table #TEMP
(QPA int
,FPR_QTY int
, key1 varchar(2)
, key2 varchar(10)
)
insert into #TEMP values
(1,1,'K1','kk1')
,(1,0,'k1','kk1')
,(1,1,'k1','kk1')
,(1,0,'k1','kk1')
,(50,5,'k2','kk1')
,(50,5,'k2','kk1')
,(50,5,'k2','kk1')
,(50,5,'k2','kk1')
select *
,SUM(FPR_QTY) OVER (PARTITION BY key1) AS TOT_FPR
from #TEMP
答案 0 :(得分:0)
在这里您可以...我能够在两个选择中编写查询。我希望我能接受我自己的答案,因为它是最简单的方法,并且不会失败。
select * ,SUM(IIF(TOT_FPR>QPA,IIF(QPA_IND = 1,QPA,0),FPR_QTY)) OVER (PARTITION BY key2) FINAL
from
(
select *
,SUM(FPR_QTY) OVER (PARTITION BY key1) AS TOT_FPR
,ROW_NUMBER() OVER (PARTITION BY key1 order by QPA) AS QPA_IND
from #TEMP
)T