34,837
社区成员




DECLARE @Sql NVARCHAR(4000)
SET @Sql=''
SELECT @Sql=@Sql+','+QUOTENAME(subject)+'=max(CASE WHEN subject='+QUOTENAME(subject,'''')+' THEN [order] END)' FROM work_order_wo GROUP BY subject
EXEC('SELECT [name] '+@Sql+'FROM work_order_wo GROUP BY [name] ')
/*
name 工序1 工序2 工序3
李四 冲压 冲压2 NULL
王五 冲压2 NULL NULL
张三 打磨 打磨2 打磨3
*/
DECLARE @sql VARCHAR(8000)
SET @sql = 'select Name as ' + '姓名'
SELECT @sql = @sql + ' , max(case Subject when ''' + Subject
+ ''' then [order] else null end) [' + Subject + ']'
FROM ( SELECT DISTINCT
Subject
FROM work_order_wo
) AS a
SET @sql = @sql + ' from work_order_wo group by name'
EXEC( @sql )