根据SQL Server中另一列中的值将数量转换为负数

时间:2013-04-04 03:41:44

标签: sql-server

表格包含以下内容 AcctNo,Dr_Cr,金额 1111,C,1000 1111,D,500

列Dr_Cr只有两个值D,C

查找将输出以下内容的查询 AcctNo,Dr_Cr,Amount,Amount1 1111,C,1000,1000 1111,D,500,-500

(即当Dr_Cr ='D'时,金额应转换为负数)

3 个答案:

答案 0 :(得分:2)

试试这个:

SELECT AcctNo, 
       Dr_Cr,
       Amount, 
       CASE 
           WHEN Dr_Cr='D' THEN -1*Amount
           ELSE Amount 
       END AS Amount1 
FROM ACCOUNTS

ACCOUNTS替换为您的表名。

答案 1 :(得分:0)

选择“金额”列时,最简单的方法是使用CASE语句。

类似的东西:

SELECT ...., 
CASE WHEN Dr_Cr = 'D' THEN Amount*(-1) ELSE Amount END as Amount 
FROM ....

答案 2 :(得分:0)

您可以使用:

select
(CASE WHEN (amount) < 0 THEN 'Dr' ELSE 'Cr' END )Dr_Cr
from Your TableName