我有兩張桌子。 (MS SQL Server 2012中)根據值範圍乘以字段的值CASE?合併?
性能
PortfolioID PortfolioCode Date MarketValue
1 Port1 12/31/12 100000
2 Port2 12/31/12 200000
3 Port3 12/31/12 300000
BillingRates
RateID FromRate ToRate Rate
1 1 100000 1
2 100000.01 200000 0.99
3 2000000.01 300000 0.98
4 300000.01 400000 0.97
我想運行具有類似CASE語句的查詢,我說,如果的市場價值在特定日期組合是關於費率表比其市場價值是通過其各自的速率乘以所述層內的variousvalue範圍之間。 (率列表示百分比率)
例如
Port1 falls in the RateID 1 tier and is multiplied by 1 100,000 * 1% = 1000
Port2 falls in the RateID 2 tier and is multiplied by .99 200,000 * .99% = 1980
Port3 falls in the RateID 3 tier and is multiplied by .98 300,000 * .98% = 2940
我的這些「個案」約100並打算做這樣的事情
SELECT COALESCE(
CASE WHEN condition1 THEN calculation1 ELSE NULL END,
CASE WHEN condition2 THEN calculation2 ELSE NULL END,
etc...
)
,但我不能找出邏輯或如何最好地加入這兩個表來實現這一目標。
什麼數據庫系統,您使用的?如果你有很多的這些條件那麼它很可能是最好創建一個程序來做到這一點(如果計算類似,但不同的值) –
MS SQL Server 2012的 –
的過程可以工作,但我不知道的邏輯獲得 –