如何取消 SQL 中最后 3 列的透视?
SELECT
[Source]
,ReportingPeriodStartDate
,ReportingPeriodStartDate_YYYYMM
,Healthcare_Provider
,TheRowTotal
,[%ServiceRequestId]
,[%IndirectActDate]
FROM ##MHSDS_204_Indirect_Activity_DeDuplicated
CREATE TABLE ##MHSDS_204_Indirect_Activity_DeDuplicated
(
[Source] VARCHAR(512),
ReportingPeriodStartDate VARCHAR(512),
ReportingPeriodStartDate_YYYYMM VARCHAR(512),
Healthcare_Provider VARCHAR(512),
TheRowTotal INT,
[%ServiceRequestId] INT,
[%IndirectActDate] INT
);
INSERT INTO ##MHSDS_204_Indirect_Activity_DeDuplicated ([Source], ReportingPeriodStartDate, ReportingPeriodStartDate_YYYYMM, Healthcare_Provider, TheRowTotal, [%ServiceRequestId], [%IndirectActDate] ) VALUES
(1, '2024-1-1', '202401', 'RAMQ', 100, 10, 10),
(1, '2024-1-2', '202402', 'OHIP', 90, 11, 11),
(1, '2024-1-3', '202403', 'BCHC', 80, 12, 12),
(1, '2024-1-4', '202404', 'MHSPI', 70, 13, 13),
(1, '2024-1-5', '202405', 'AHCIP', 60, 14, 14),
(1, '2024-1-6', '202406', 'SMH', 50, 15, 15);
SELECT * FROM ##MHSDS_204_Indirect_Activity_DeDuplicated
select [Source], ReportingPeriodStartDate, ReportingPeriodStartDate_YYYYMM, Healthcare_Provider,
u.pct, u. [Values]
from ##MHSDS_204_Indirect_Activity_DeDuplicated s
unpivot
(
[Values]
for pct in (TheRowTotal, [%ServiceRequestId], [%IndirectActDate])
) u;