3

一个表有以下列 AcctNo, Dr_Cr, Amount 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' 时,金额应转换为负数)

4

3 回答 3

4

试试这个:

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

替换ACCOUNTS为您的表名。

于 2013-04-04T03:49:42.970 回答
0

最简单的方法是CASE在选择“金额”列时使用声明。

就像是:

SELECT ...., 
CASE WHEN Dr_Cr = 'D' THEN Amount*(-1) ELSE Amount END as Amount 
FROM ....
于 2013-04-04T03:46:12.487 回答
0

您可以使用:

select
(CASE WHEN (amount) < 0 THEN 'Dr' ELSE 'Cr' END )Dr_Cr
from Your TableName
于 2016-12-31T08:26:04.157 回答