我有一個表tblSwaps。它看起來有點像下面。從視圖中刪除硬編碼的值
swapdate region bb_ticker swap_units
2017-01-01 EU ABC 10
2017-01-01 US ABC 40
2017-01-01 EU DEF 13
2017-01-01 US DEF 12
2017-02-20 EU ABC 8
2017-02-20 US ABC 40
2017-02-20 EU DEF 13
2017-02-20 US DEF 12
我也有另一個表,tblCodes
code
ABC
DEF
然後我有一個視圖,vw_SwapTotal,以下查詢。這基本上總結了每個bb_ticker在某個日期的交換單元的數量。
SELECT swapdate, bb_ticker, SUM(swap_units) AS total_swap_units
FROM tblSwaps
GROUP BY swapdate, bb_ticker
我已創建的另一個視圖(這是我有個問題)如下所示,這使得使用鑑於以上(不知道這是最好的主意或沒有)。下面的查詢的問題是,我已經硬編碼了bb_tickers(ABC,DEF),其中不理想,因爲將來會有新的bb_tickers。
SELECT *
FROM vw_SwapTotal
WHERE bb_ticker IN ('ABC', 'DEF'))
SELECT swapdate, isnull(ABC, 0) ABC, isnull(DEF, 0) DEF
FROM swp AS source PIVOT (max(total_swap_units) FOR bb_ticker IN ([ABC], [DEF])) AS pvt
在這個視圖中擺脫硬編碼bb_tickers的最佳方法是什麼?
如何選擇'bb_ticker'值的條件是什麼?在你的例子中,使用'IN(SELECT DISTINCT bb_ticker FROM tblSwaps)'就足夠了,但這沒有任何意義...... – Shnugo