1

SQL を約 12 年間使用してきた人にとって、これは非常にばかげた質問かもしれませんが...

私が使用している会計データベースでは、すべての数値が正の数値として格納されています……つまり、請求書の正味額は正の数値として格納されており、貸方票の正味額も正の数値として格納されています。 ..トランザクションの「TranType」は、この 2 つを区別するために使用されます (「Inv」は請求書、「CRN」は貸方票)。そのため、トランザクション データを使用するレポートを作成する必要がある場合は、常にケースを作成する必要があります。声明...

case when TranType = 'INV' then Net else NetVal *-1 end as 'Net'

...ケースステートメントを何度も再入力せずに参照できる特定のレポート内に列を作成する方法があるかどうか疑問に思っています (つまり、結果を提供する 'Net' を参照できます)ケースステートメントの)?

ありがとう、

ダレン

4

2 に答える 2

2

はい、できます。CREATE TABLEまたはでそのような列を作成できますALTER TABLE

[TrueTotal]  AS (case when TranType = 'INV' then Net else NetVal *-1 end)

例えば

CREATE TABLE [dbo].[mytable](
    [TranType] varchar(3) not null,
    Net decimal(20,2) not null,
    NetVal decimal(20,2) not null,
    [TrueTotal]  AS (case when TranType = 'INV' then Net else NetVal *-1 end)
) 
于 2013-10-09T12:20:13.790 に答える