表a
最终效果:
IF NOT OBJECT_ID('TEMPDB..#TEMP_SUMCLAIM') IS NULL
DROP TABLE #TEMP_SUMCLAIM
SELECT SUM(CLAIM_AMOUNT) AS SumClaim
INTO #TEMP_SUMCLAIM
FROM a
DECLARE @SumClaim DECIMAL(18, 2)
SELECT @SumClaim = SumClaim
FROM #TEMP_SUMCLAIM
SELECT CLAIM_CATEGORY_CN ,
SUM(CLAIM_AMOUNT) AS Claim ,
CAST(CAST(SUM(CLAIM_AMOUNT) / @SumClaim * 100 AS DECIMAL(18, 2)) AS NVARCHAR(100))
+ '%' AS Rate
FROM a
GROUP BY CLAIM_CATEGORY_CN
ORDER BY CAST(SUM(CLAIM_AMOUNT) / @SumClaim * 100 AS DECIMAL(18, 2)) DESC