現在、集約ストアドプロシージャに取り組んでおり、最終的な選択は次のようになります。
SELECT
CASE
WHEN GROUPING(Custodian) = 1
THEN 'Grand Total'
ELSE Custodian
END AS Custodian
, PortfolioID
, PortfolioBaseCCY
, [Date]
, SUM(AmountTotalBaseEquiv) AS AmountTotalBaseEquiv
, ExchangeRate
, AmountTotalBaseEquivUSD
, PortfolioNAVUSD
, SUM(TotalCashPctNAV) AS TotalCashPctNAV
FROM @ResultSet
WHERE TotalCashPctNAV > 5
GROUP BY Custodian
, PortfolioID
, PortfolioBaseCCY
, [Date]
, AmountTotalBaseEquiv
, ExchangeRate
, AmountTotalBaseEquivUSD
, PortfolioNAVUSD
, TotalCashPctNAV WITH ROLLUP
HAVING GROUPING_ID(Custodian
, PortfolioID
, PortfolioBaseCCY
, [Date]
, AmountTotalBaseEquiv
, ExchangeRate
, AmountTotalBaseEquivUSD
, PortfolioNAVUSD
, TotalCashPctNAV) IN (1,255,511)
ORDER BY ABS(TotalCashPctNAV) DESC
ただし、CASEステートメントに別のグループを追加したいと思います。
CASE
WHEN GROUPING(Custodian) = 1
THEN 'Grand Total'
WHEN GROUPING(PortfolioID) = 1
THEN Custodian+''+'Total'
ELSE Custodian
ただし、2番目のケースは値を返さないため、機能しません。これはなぜですか。
また、上記の選択でTotalCashPctNAVを注文したいと思います。
ORDER BY ABS(TotalCashPctNAV) DESC
ただし、これは機能していないようです。各portfolioID小計の間でABS値を降順に並べるように並べてほしい。
どんな助けでもいただければ幸いです。