2

以下のステートメントでは、金額が の場合は負[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' 
4

1 に答える 1

2

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 ステートメントを少し変更します。

これがフィドルです。

幸運を。

于 2013-01-30T16:26:19.110 に答える