你不會想反正使用PIVOT & UNPIVOT ...他們是一個更大的痛苦比他們的價值。這應該做的伎倆......
IF OBJECT_ID('tempdb..#TestData', 'U') IS NOT NULL
DROP TABLE #TestData;
CREATE TABLE #TestData (
TypeId CHAR(5),
s100 MONEY,
s50 MONEY
);
INSERT #TestData(TypeId, s100, s50) VALUES
('Type1', 5000.00, 56760.00),
('Type2', 2345.00, 87650.00);
--SELECT * FROM #TestData td;
WITH
cte_Unpivot AS (
SELECT
td.TypeId,
d.Denom,
d.cValue
FROM
#TestData td
CROSS APPLY (VALUES (100, td.s100), (50, td.s50)) d (Denom, cValue)
)
SELECT
u.Denom,
Type1 = SUM(CASE WHEN u.TypeId = 'Type1' THEN u.cValue END),
Type2 = SUM(CASE WHEN u.TypeId = 'Type2' THEN u.cValue END)
FROM
cte_Unpivot u
GROUP BY
u.Denom
ORDER BY
u.Denom DESC;
結果...
Denom Type1 Type2
----------- --------------------- ---------------------
100 5000.00 2345.00
50 56760.00 87650.00
你是什麼意思你沒有2008年提供PIVOT/UNPIVOT ???這些功能絕對在2008年。 –
我們的管理員不會讓他們使用是我的意思。 – ncsol
我同意Jason的看法,他們通常比他們的價值更痛苦。但是,您的管理員不能禁用這些功能,它們是sql server本地的。他們可能有一個公司規則,說明你不要使用它們。 ;) –