SELECT
[Month],
[Name],
[Count],
CASE WHEN TotalMonth=0 THEN 'INF' ELSE cast(round([Count],0)*100.0/TotalMonth,0) as int) + '%' END as [Percentage]
FROM
(
SELECT
[Months].[Month] as [Month],
CN.[Name],
isnull(CC.[Count],0) as [Count],
(SELECT SUM([Count]) FROM ColorCount WHERE
datepart(month,[Date])=datepart(month,CC.[Date])
) as [TotalMonth]
FROM (SELECT DISTINCT datepart(month,[Date]) as [Month] FROM ColorCount) [Months]
LEFT JOIN ColorName CN ON [Months].[Month]=datepart(month,CC.[Date])
LEFT JOIN ColorCount CC ON CN.ColorID=CC.ColorID
) AS tbl1
ORDER BY
[Month] ASC,
[Name] ASC
像这样的。。。。
它不会显示本月的前零位,但它真的重要吗?