2017-08-23 4 views
0

Ich habe ein erstelltes Feld in einer Access-Datenbank, die ich versuche, in T-SQL neu zu erstellen. Ich bekomme einige falsche Ergebnisse und ich denke, dass ich den Code so geschrieben habe. Hier ist das Feld in Access, das richtig funktioniert:Konvertieren von Access SQL zu T-SQL

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

Hier ist, wie ich es in SQL codiert habe:

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

Kann jemand Hilfe geben? Ich habe bestätigt, dass es ein Problem mit der Art ist, wie ich das MCPActual-Feld in SQL erstellt habe. – tsqln00b

Antwort

0

Ich glaube, Sie haben nicht das Ende und Klammern in der richtigen Reihenfolge bekommen Versuchen Sie

Sie müssen nicht mit 1 multiplizieren, es sei denn, Sie versuchen, einen negativen/positiven Wert zu verdecken.