以下のクエリに問題があります。入学年度間の増加率または減少率を見つける必要があります。何らかの理由で、複数の項目が表示され、出力が正しくありません。スクリプトは正常に実行されますが、正しくない結果が生成されます
脚本:
WITH cte
AS ( SELECT *
FROM ( SELECT DISTINCT
dt.YEAR ,
db.business_code ,
db.business_name ,
dt.time_key ,
fes.total_enrollment
FROM fact
AS fes
LEFT OUTER JOIN building
AS db ON fes.building_key = db.building_key
LEFT OUTER JOIN mart.time
AS dt ON fes.time_key = dt.time_key
) AS source PIVOT
( sum(total_enrollment) FOR [year] IN ( [2012], [2011], [2010], [2009],
[2008] ) ) as pvt
)
SELECT company_code ,
company_name ,
[2012] ,
( CASE WHEN [2011] <> 0
THEN CONVERT(DECIMAL(18, 2), ( [2012] - [2011] )
/ CONVERT(DECIMAL(18, 2), ( [2011] ))) * 100
END ) AS '% Degree -/+' ,
[2011] ,
( CASE WHEN [2010] <> 0
THEN CONVERT(DECIMAL(18, 2), ( [2011] - [2010] )
/ CONVERT(DECIMAL(18, 2), ( [2010] ))) * 100
END ) AS '% Degree -/+' ,
[2010] ,
( CASE WHEN [2009] <> 0
THEN CONVERT(DECIMAL(18, 2), ( [2010] - [2009] )
/ CONVERT(DECIMAL(18, 2), ( [2009] ))) * 100
END ) AS '% Degree -/+' ,
[2009] ,
( CASE WHEN [2008] <> 0
THEN CONVERT(DECIMAL(18, 2), ( [2009] - [2008] )
/ CONVERT(DECIMAL(18, 2), ( [2008] ))) * 100
END
) AS '% Degree -/+'
FROM cte
ORDER BY company_name
Heres私のSQL出力:
ここに私の望ましい出力があります:
ご協力ありがとうございました...