如何根据SQL中的另一个字段值将字段更改为负数

时间:2013-01-30 16:24:10

标签: sql

如果[Invoice_Type_Code] = 'c',我希望下面的陈述是负数,如果不是,那么它是正数。

SELECT [Invoice_Amount]
FROM [Forefront].[dbo].[VN_GL_DISTRIBUTION_HEADER_MC]
WHERE [Vendor_Code] ='  UnitedEL' and
[Date_List1]  > '2011-12-31' and
[Date_List1] < '2012-02-01' and
[Company_Code] = 'tmg' 

1 个答案:

答案 0 :(得分:1)

根据您的RDBMS,使用CASE可以正常工作 - 大多数RDBMS应该支持它:

SELECT CASE WHEN  Invoice_Type_Code = 'C' THEN -1 ELSE 1 END * Invoice_Amount
FROM [Forefront].[dbo].[VN_GL_DISTRIBUTION_HEADER_MC]
where [Vendor_Code] ='  UnitedEL' and
[Date_List1]  > '2011-12-31' and [Date_List1] < '2012-02-01' and
[Company_Code] = 'tmg' 

这假设所有Invoice_Amounts都是正数。如果它们不是正数且您仍然需要负值,请使用ABS函数并稍微更改您的案例陈述。

这是Fiddle

祝你好运。