如果[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'
答案 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。
祝你好运。