我創建了一個查詢,我想結果看起來像如下空:返回數據,如果數據不存在 - 用數據填充
Reporting Date Fund AssetClass %
31/10/2012 1 Equity 10
31/10/2012 1 Bond 40
31/10/2012 1 Cash 40
31/10/2012 1 Balanced 10
31/10/2012 1 Other 0
我上面有我的問題是,其中%是0,顯然沒有數據顯示。不過,我希望它顯示。
所以我認爲最好的解決方案是創建一個包含所有資產類的臨時表,然後從我的工作表中選擇右外部連接,以便填充沒有數據的行。代碼如下:
SELECT
ReportingDate
, PortfolioID
, AC.AssetClass
, ROW_NUMBER() OVER (PARTITION BY PortfolioID ORDER BY SUM(Percentage) DESC) AS [Rank]
, CAST(SUM(Percentage) AS DECIMAL(22,1)) AS [Weight]
FROM @Worktable as WT
RIGHT OUTER JOIN @AssetClass AS AC
ON WT.AssetClass = AC.AssetClass
GROUP BY WT.ReportingDate, WT.PortfolioID, AC.AssetClass
ORDER BY [Weight] DESC
我的問題是,當它返回它看起來像這樣:
Reporting Date Fund AssetClass %
31/10/2012 1 Equity 10
31/10/2012 1 Bond 40
31/10/2012 1 Cash 40
31/10/2012 1 Balanced 10
NULL NULL Other NULL
我怎麼能填充NULL的數據在此腳本?有沒有更好的方法可以做到這一點?
難道你不只是在select查詢中使用ISNULL嗎?例如ISNULL(PortfolioID,0) – Ric
感謝您的迴應。我試過了,它不起作用 –
當你使用它時會發生什麼? – Ric