SQL Server行转列

转换前:

 

转换后:

SQL代码:

CREATE TABLE #t1(
 c_id BIGINT,
 c_name NVARCHAR(50),
 c_date DATETIME
)
CREATE TABLE #t2(
 c_id BIGINT,
 c_t1_id BIGINT,
 c_text NVARCHAR(50),
 c_fund DECIMAL
)
INSERT #t1( c_id, c_name, c_date ) VALUES (1,N'随便取个名字','2018-12-31')
INSERT #t2(c_id,c_t1_id,c_text,c_fund) VALUES(1,1,'第一年','50')
INSERT #t2(c_id,c_t1_id,c_text,c_fund) VALUES(2,1,'第二年','510')
INSERT #t2(c_id,c_t1_id,c_text,c_fund) VALUES(3,1,'第三年','40')

SELECT * FROM (
	SELECT a.*,b.C_Fund,b.c_text FROM #t1 AS a 
	JOIN #t2 AS b ON a.c_id = b.c_t1_id 
	WHERE a.c_date >= '2018-01-01'
)
AS P
PIVOT 
(
    SUM(C_Fund) FOR 
    p.c_text IN ([第一年],[第二年],[第三年])
) AS T

猜你喜欢

转载自blog.csdn.net/qq_32109957/article/details/86578347