私はテーブルを持っています、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