我有下面的腳本:集團通過排除空 - TSQL
;;WITH CTE AS
(
SELECT
RANK() OVER (PARTITION BY PortfolioID ORDER BY SUM(Percentage) DESC,MAX(SecurityName)) AS [Rank]
, ReportingDate
, PortfolioID
, PortfolioNme
, MAX(SecurityName) AS SecurityName
, CAST(SUM(Percentage) AS DECIMAL(22,1)) AS [Weight]
, SEDOL
, MAX(ISIN) AS ISIN
FROM @Worktable as WT
WHERE WT.IssueType2 <> '010' AND WT.IssueType2 <> '055' AND WT.IssueType1 <> '110' -- To remove CASH and FX and Collateral
GROUP BY WT.ReportingDate
, WT.PortfolioID
, WT.PortfolioNme
, WT.SEDOL
)
SELECT
CONVERT(VARCHAR, ReportingDate, 103) AS ReportingDate
, PortfolioID AS FundCode
, PortfolioNme AS FundName
, SecurityName AS InstrumentName
, [Rank]
, [Weight] AS Percentage
, SEDOL
, ISIN
FROM CTE
WHERE [Rank] <= 10
ORDER BY ReportingDate, PortfolioID, [Rank], [Weight] DESC
我被SEDOL分組,因爲我想相同組SEDOLs在一起,然而,這是造成NULLS組合到一起。我試着通過添加圍繞SEDOL一個MAX並把改變腳本:
CASE
WHEN SEDOL IS NULL THEN SecurityName
ELSE SEDOL
END
我在GROUP BY,但沒有成功。
任何幫助非常感謝。
感謝
你可以嘗試像ISNULL(SEDOL,SecurityName)作爲澀澀中添加
AND WT.SEDOL is not null
。 ..和改變組由WT.Sese – futile 2013-02-14 12:41:26,但我需要返回SEDOLS在最後選擇,它是空的,我需要返回一個空的 – 2013-02-14 12:48:41