CREATE TABLE #T(貨單編號 VARCHAR(10),工序編號 VARCHAR(3),工序部門 VARCHAR(3))
INSERT #T
SELECT 'TMS1056AD', '01', 'A-a'
UNION ALL SELECT 'TMS1056AD', '02', 'B-a'
UNION ALL SELECT 'TMS1056AD', '03', 'C-a'
UNION ALL SELECT 'TMS1056AD', '04', 'E-a'
UNION ALL SELECT 'TMS1056AD', '05', 'G-a'
UNION ALL SELECT 'TMS1056AD', '06', 'D-a'
UNION ALL SELECT 'TMS1058AD', '06', 'A-a'
UNION ALL SELECT 'TMS1058AD', '07', 'D-a'
UNION ALL SELECT 'TMS1058AD', '08', 'F-a'SELECT * FROM #T-- 查询语句开始
declare @sql varchar(8000)
set @sql='select 貨單編號'
select @sql= @sql+ ',min(case when 工序編號 = ''' + 工序編號 + ''' then 工序部門 end) [' + 工序編號 + ']' from (select distinct 工序編號 from #T) a
set @sql=@sql+' from #T group by 貨單編號'
exec (@sql)
drop table #T
/*
貨單編號 工序編號 工序部門
---------- ---- ----
TMS1056AD 01 A-a
TMS1056AD 02 B-a
TMS1056AD 03 C-a
TMS1056AD 04 E-a
TMS1056AD 05 G-a
TMS1056AD 06 D-a
TMS1058AD 06 A-a
TMS1058AD 07 D-a
TMS1058AD 08 F-a(所影响的行数为 9 行)貨單編號 01 02 03 04 05 06 07 08
---------- ---- ---- ---- ---- ---- ---- ---- ----
TMS1056AD A-a B-a C-a E-a G-a D-a NULL NULL
TMS1058AD NULL NULL NULL NULL NULL A-a D-a F-a
*/
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=170103