2017-01-25 17 views
0

尋找在選擇SQL查詢中填充臨時總值字段,但是使用兩個數值的數學方法創建此臨時字段。如果某個條件滿足則應當適用一定的數學如果沒有,那麼另一個數學會應用等SQL使用IF語句選擇語句並將數學運算應用於條件

例子:

SELECT Price, Quantity, Type, 
CASE WHEN Type = 'Fixed' THEN ((Price * Quantity)/100) 
WHEN Type = 'Option' THEN ((Price * Quantity)*100) 
ELSE (Price * Quantity) 
END AS Value 
FROM Holding..Position 
+0

的Microsoft SQL Server 2014 Management Studio中 –

+1

什麼是與您的查詢的問題? –

+0

@GordonLinoff看起來他並沒有引用他的字符串。 – SqlZim

回答

2

你幾乎沒有...

SELECT Price 
    , Quantity 
    , [Type] 
    , CASE WHEN [Type] = 'Fixed' THEN ((Price * Quantity) * 1.00 /100) 
      WHEN [Type] = 'Option' THEN ((Price * Quantity) * 1.00 * 100) 
      ELSE (Price * Quantity) * 1.00 
     END AS Value 
FROM Holding..Position 

通過1.00來確定您的答案中是否包含小數點。

0

你的查詢看起來很好。如果您想將列添加到表中,你可以使用一個計算列:

alter table holding..Position 
    add Value as (CASE WHEN [Type] = 'Fixed' THEN (Price * Quantity)/100 
         WHEN [Type] = 'Option' THEN (Price * Quantity)*100 
         ELSE (Price * Quantity) 
        END);