我不使用 SQL Server 中的条件执行 SUM

Sil*_*lva 0 sql-server query

我想根据各种条件对列进行 SUM 。在此示例中,对于列'fac_saldo_tot',如果值大于 500,则添加该列并将它们分组到列'cli_razon_soc'

我做了这个查询,但我不执行操作它只存储较高的值到 500 否则它把 0。 见图像(红色列)

    SELECT        cli_razon_soc, 
   CASE WHEN t .fac_saldo_tot > 500 THEN SUM(t .fac_saldo_tot) ELSE 0 END AS 'Mayor500'
FROM            cdc_vw_BuroCredito_Facturas95 AS t
GROUP BY cli_razon_soc, fac_saldo_tot
ORDER BY cli_razon_soc, 'Mayor500'
Run Code Online (Sandbox Code Playgroud)

我很感激你能给我的建议

在此处输入图片说明

这是我想要的结果

在此处输入图片说明

Geo*_*ios 5

SELECT        cli_razon_soc, 
SUM(CASE WHEN t .fac_saldo_tot > 500 THEN t .fac_saldo_tot ELSE 0 END) AS 'Mayor500'
FROM            cdc_vw_BuroCredito_Facturas95 AS t
GROUP BY cli_razon_soc, fac_saldo_tot
ORDER BY cli_razon_soc, 'Mayor500'
Run Code Online (Sandbox Code Playgroud)

由于 CASE 操作应用于每一行,因此检查总和在逻辑上没有意义。我们需要对每一行做的是检查值,如果大于 500 则求和,否则将值视为 0。

上面的代码应该可以做到这一点。