我有一张有三个云层的桌子(tipo,ok,ko).我正在try 找到一种基于条件求和的方法,例如在下表中使用T-SQL
Tipo | KO | OK | Totale |
---|---|---|---|
act-act | 28 | 477 | 505 |
disktier | 15 | 7665 | Null |
scopertura | 105 | 475 | 580 |
Silver100% | 21 | 3141 | 3162 |
Silverless50% | 82 | 7665 | Null |
Silvermore50% | 130 | 7665 | Null |
tra 2 siti | 65 | 7665 | Null |
对于每一行,我try 将Ko+ok的和放在一起,但对于和行,我想要将它们的所有Ko与相互ok相加,因此,在最后,我需要为所有4个空值计算7,957,因此Ko1(15)+Ko2(82)+K03(130)+Ko4(65)+相互ok(7665),因此期望的结果应如下表所示.
Tipo | KO | OK | Totale |
---|---|---|---|
act-act | 28 | 477 | 505 |
disktier | 15 | 7665 | 7957 |
scopertura | 105 | 475 | 580 |
Silver100% | 21 | 3141 | 3162 |
Silverless50% | 82 | 7665 | 7957 |
Silvermore50% | 130 | 7665 | 7957 |
tra 2 siti | 65 | 7665 | 7957 |
下面是我正在使用的代码,但它只是对第一个 case 的两列求和,我需要修改它以获得第二个 case ,并在第二个表中获得所需的结果
select TIPO, KO, OK,
sum(case when tipo in('act-act','scopertura','Silver100%') then (ko+ok)
else null
end ) as totale
From table
group by tipo , ok , ko