2011-08-16 142 views
-2

我有以下查詢@myvar如何在以下查詢中乘以(@myvar * -1)。我如何在'case'語句中通過-1來聲明變量?

SELECT 
     Date, 
     case when Position > 0 then 
      Position * Mark * case when SecurityType in ('Equity','Equity Option') Then Mark * 100 else 1 end 
     else 
      0 
     end var, 
     case when Position < 0 then 
      Position * Mark * case when SecurityType in ('Equity','Equity Option') Then .Mark * 100 else 1 end 
     else 
      0 
     end (@myvar * -1),Id FROM Mytable 

- 我收到提示

幫助我:)

+1

什麼是你想怎麼辦? – gbn

+1

@什麼類型是myvar? – msarchet

+0

myvar是十進制的(18,6) – Neo

回答

1

嘿所有我得到的答案

我只需要做

case when Position < 0 then 
    -1 * Position * Mark * case when SecurityType in ('Equity','Equity Option') Then Mark * 100 else 1 end** 
     else 
      0 
     end Myvar , -- myvar will be (-) because in above condition i multiply -1 
     Id 
FROM mytable 
1

你是你最後一次結束後缺少一個逗號指定一個新列。如果你只是返回-1 * myvar,那麼表達式是正確的。

SELECT 
     Date, 
     case when Position > 0 then 
      Position * Mark * case when SecurityType in ('Equity','Equity Option') Then Mark * 100 else 1 end 
     else 
      0 
     end var, 
     case when Position < 0 then 
      Position * Mark * case when SecurityType in ('Equity','Equity Option') Then Mark * 100 else 1 end 
     else 
      0 
     end, 
     (@myvar * -1) -- I'm getting error 
+0

還缺少a, 'Date'後 – xan

+0

最後的聲明就像 end myvar, Id – Neo

+1

'end @ myvar'不合法,你需要一個運算符'end + ??'或逗號 - 你需要擴展你的問題 –

相關問題