我有一张桌子,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的最佳方法是什么?
答案 0 :(得分:0)
这可能是你想要的吗?
WHERE bb_ticker IN (select distinct bb_ticker from tblSwaps))