2017-08-23 9 views
0

T-SQLで再作成しようとしているAccessデータベースにフィールドを作成しました。私はいくつかの不正確な結果を得ており、コードをどのように書いたのかと思います。ここでは正常に動作しているAccessのフィールドである:ここではAccess SQLをT-SQLに変換する

MCP Actual: IIf([lever]="MCP",[actual usd]*IIf([split flag]="x",[split percent],1))*[Allocation Value] 

は、私はそれがSQLでコーディングされている方法です。

MCPActual = 
    CASE 
     WHEN pbd.Lever = 'MCP' THEN pbd.ActualUSD * CASE WHEN ou.SplitFlag = 'x' THEN ((pbd.ActualUSD * ou.SplitPercent) * pda.AllocationValue) END 
     ELSE ((pbd.ActualUSD * 1) * pda.AllocationValue) 
     END 
+0

誰か助けてもらえますか?私はそれがSQLでMCPActualフィールドを作成した方法の問題であることを確認しました。 – tsqln00b

答えて

0

私はあなたが正しい順序でENDとブラケットを持っていないと思いますあなたは、負/正の値をひそかにしようとしている場合を除き1を乗算する必要はありません

CASE 
    WHEN pbd.Lever = 'MCP' THEN pbd.ActualUSD * 
    (CASE WHEN ou.SplitFlag = 'x' THEN 
     (pbd.ActualUSD * ou.SplitPercent * pda.AllocationValue) 
    ELSE 
     (pbd.ActualUSD * pda.AllocationValue) END) 
    END 

してみてください。