对于下面的语句,如果[Invoice_Type_Code] = 'c'
,我希望 amount 为负数,如果不是,则为正数。
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'
最佳答案
根据您的 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
函数并稍微更改您的 case 语句。
这是Fiddle .
祝你好运。
关于sql - 如何根据 SQL 中另一个字段的值将一个字段更改为负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14608777/