gpt4 book ai didi

sql - 如何将 group-by T-SQL 语句中的所有负数清零

转载 作者:行者123 更新时间:2023-12-02 11:49:01 25 4
gpt4 key购买 nike

我有一个 T-SQL 查询,我希望将所有负数清零。

SELECT 
p.productnumber,
v.[Description],
SUM(i.Quantity) as quantity
FROM ...
LEFT JOIN ...
LEFT JOIN ...
LEFT JOIN ...
GROUP BY productnumber, [Description]

基本上,如果总和由 5, 5, -1 组成,结果应该是 5+5+0=10,而不是 (5+5+(-1)=9。

我该怎么做?

最佳答案

您可以使用CASE语句

SUM(CASE WHEN i.Quantity < 0 THEN 0 ELSE i.Quantity END)

或者专有的IIF版本

IIF(i.Quantity < 0, 0, i.Quantity)

或者更晦涩的版本

SUM(NULLIF(i.Quantity, -ABS(i.Quantity)))

或者如果不需要用于任何其他目的,则将这些行完全排除在 WHERE 子句中。

在 Azure SQL 数据库中,您现在还可以使用 GREATEST函数用于此

GREATEST(i.Quantity,0)

关于sql - 如何将 group-by T-SQL 语句中的所有负数清零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7320155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com