Вы не можете напрямую использовать два столбца в качестве источника для имен столбцов сводной таблицы.Но вы можете объединить их в исходной таблице следующим образом (если я правильно понимаю ваши намерения):
SELECT
ID,
DX1 , DX2 , DX3 , DX4 , DX5 , DX6 , DX7 , DX8 , DX9 , DX10,
DX11, DX12, DX13, DX14, DX15, DX16, DX17, DX18, DX19, DX20,
DX21, DX22, DX23, DX24, DX25, DX26, DX27, DX28, DX29, DX30,
DX31, DX32, DX33, DX34, DX35, DX36, DX37, DX38, DX39, DX40,
DX41, DX42, DX43, DX44, DX45, DX46, DX47, DX48, DX49, DX50,
DX51, DX52, DX53, DX54, DX55, DX56, DX57, DX58, DX59, DX60,
DX61, DX62, DX63, DX64, DX65, DX66, DX67, DX68, DX69, DX70,
DX71, DX72, DX73, DX74, DX75, DX76, DX77, DX78, DX79, DX80,
DX81, DX82, DX83, DX84, DX85, DX86, DX87, DX88, DX89, DX90,
DX91, DX92, DX93, DX94, DX95, DX96, DX97, DX98, DX99, DX100,
PROC1 , PROC2 , PROC3 , PROC4 , PROC5 , PROC6 , PROC7 , PROC8 , PROC9 , PROC10,
PROC11, PROC12, PROC13, PROC14, PROC15, PROC16, PROC17, PROC18, PROC19, PROC20,
PROC21, PROC22, PROC23, PROC24, PROC25, PROC26, PROC27, PROC28, PROC29, PROC30,
PROC31, PROC32, PROC33, PROC34, PROC35, PROC36, PROC37, PROC38, PROC39, PROC40,
PROC41, PROC42, PROC43, PROC44, PROC45, PROC46, PROC47, PROC48, PROC49, PROC50,
PROC51, PROC52, PROC53, PROC54, PROC55, PROC56, PROC57, PROC58, PROC59, PROC60,
PROC61, PROC62, PROC63, PROC64, PROC65, PROC66, PROC67, PROC68, PROC69, PROC70,
PROC71, PROC72, PROC73, PROC74, PROC75, PROC76, PROC77, PROC78, PROC79, PROC80,
PROC81, PROC82, PROC83, PROC84, PROC85, PROC86, PROC87, PROC88, PROC89, PROC90,
PROC91, PROC92, PROC93, PROC94, PROC95, PROC96, PROC97, PROC98, PROC99, PROC100
FROM (
SELECT
FIC.ID,
Code = ISNULL(Code.Code, ' ') Code,
CodingOrder =
CASE FIC.CodeType WHEN 'DIAGN' THEN 'DX' WHEN 'PROCE' THEN 'PROC' END +
CAST(FIC.DWHCodingLineOrder AS varchar(20))
/* CodingOrder is now not just 1, 2, 3 etc.
but 'DX1', 'DX2', … 'PROC1', 'PROC2', … */
FROM FIC
INNER JOIN DimCode AS Code WITH(NOLOCK) ON FIC.CodeId = Code.CodeId
WHERE FIC.ArchiveFlag = 0 AND FIC.CodeType IN ('DIAGN', 'PROCE')
) AS SourceTable
PIVOT (
MAX(DiagCode)
FOR CodingOrder IN (
DX1 , DX2 , DX3 , DX4 , DX5 , DX6 , DX7 , DX8 , DX9 , DX10,
DX11, DX12, DX13, DX14, DX15, DX16, DX17, DX18, DX19, DX20,
DX21, DX22, DX23, DX24, DX25, DX26, DX27, DX28, DX29, DX30,
DX31, DX32, DX33, DX34, DX35, DX36, DX37, DX38, DX39, DX40,
DX41, DX42, DX43, DX44, DX45, DX46, DX47, DX48, DX49, DX50,
DX51, DX52, DX53, DX54, DX55, DX56, DX57, DX58, DX59, DX60,
DX61, DX62, DX63, DX64, DX65, DX66, DX67, DX68, DX69, DX70,
DX71, DX72, DX73, DX74, DX75, DX76, DX77, DX78, DX79, DX80,
DX81, DX82, DX83, DX84, DX85, DX86, DX87, DX88, DX89, DX90,
DX91, DX92, DX93, DX94, DX95, DX96, DX97, DX98, DX99, DX100,
PROC1 , PROC2 , PROC3 , PROC4 , PROC5 , PROC6 , PROC7 , PROC8 , PROC9 , PROC10,
PROC11, PROC12, PROC13, PROC14, PROC15, PROC16, PROC17, PROC18, PROC19, PROC20,
PROC21, PROC22, PROC23, PROC24, PROC25, PROC26, PROC27, PROC28, PROC29, PROC30,
PROC31, PROC32, PROC33, PROC34, PROC35, PROC36, PROC37, PROC38, PROC39, PROC40,
PROC41, PROC42, PROC43, PROC44, PROC45, PROC46, PROC47, PROC48, PROC49, PROC50,
PROC51, PROC52, PROC53, PROC54, PROC55, PROC56, PROC57, PROC58, PROC59, PROC60,
PROC61, PROC62, PROC63, PROC64, PROC65, PROC66, PROC67, PROC68, PROC69, PROC70,
PROC71, PROC72, PROC73, PROC74, PROC75, PROC76, PROC77, PROC78, PROC79, PROC80,
PROC81, PROC82, PROC83, PROC84, PROC85, PROC86, PROC87, PROC88, PROC89, PROC90,
PROC91, PROC92, PROC93, PROC94, PROC95, PROC96, PROC97, PROC98, PROC99, PROC100
)
) DiagPivot