我正在尝试在T-SQL中执行计算,但我遇到了一些问题.这是我正在尝试做的事情:
DECLARE @CNT money
SELECT @CNT = 0
Select Amount,
case
when Service like 'pay_in' then SET @CNT = @CNT + Amount
when Service like 'pay_out' then SET @CNT= @CNT - Amount
end
from Payment where isActive = 1
select @CNT
Run Code Online (Sandbox Code Playgroud)
由于我对T-SQL语法知之甚少,我被困在这里,如果有人能够把我推向正确的方向,我将非常感激.谢谢!
SQL最适合基于集合的方法.尽量不要通过迭代数据集来解决问题,而是通过聚合来解决问题.
DECLARE @CNT money
SELECT
@CNT = SUM(
CASE Service
WHEN 'pay_in' THEN Amount
WHEN 'pay_out' THEN -1 * Amount
ELSE 0
END
)
FROM
Payment
WHERE
isActive = 1
SELECT @CNT
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
874 次 |
最近记录: |