感謝網友TheGodOfGods (龍城飛將) 的幫助.
if object_id('tbData') is not null
drop table tbData
go
create table tbData([員工ID] int, [員工姓名] varchar(10),崗位工資 int,薪級工資 int,津貼 int,補貼 int,會費 int,年份 int,月份 int)
go
insert into tbData select 1,'張三',200,230,300,100,123,2010,3
union all select 1,'張三',200,230,300,100,123,2010,4
union all select 2,'李四',300,340,300,100,120,2010,3
union all select 2,'李四',300,340,300,100,120,2010,4
if object_id('tbProjects') is not null
drop table tbProjects
go
create table tbProjects([ID] int, 工資項目名稱 varchar(20))
go
insert into tbProjects select 1,'崗位工資'
union all select 2,'薪級工資'
union all select 3,'津貼'
union all select 4,'補貼'
union all select 5,'會費'
go
select [員工ID],p.ID,金額,年份,月份 from tbData t
unpivot(金額 for 工資項目 in ([崗位工資],[薪級工資],[津貼],[補貼],[會費]))k
join tbProjects p on k.工資項目=p.工資項目名稱
/* 員工ID ID 金額 年份 月份 ----------- ----------- ----------- ----------- -----------
1 1 200 2010 3
1 2 230 2010 3
1 3 300 2010 3
1 4 100 2010 3
1 5 123 2010 3
1 1 200 2010 4
1 2 230 2010 4
1 3 300 2010 4
1 4 100 2010 4
1 5 123 2010 4
2 1 300 2010 3
2 2 340 2010 3
2 3 300 2010 3
2 4 100 2010 3
2 5 120 2010 3
2 1 300 2010 4
2 2 340 2010 4
2 3 300 2010 4
2 4 100 2010 4
2 5 120 2010 4
*/