В PIVOT вы можете начать с исходного подзапроса.
Затем вы определяете, какое поле объединять, для каких заголовков в другом поле.
SELECT *
FROM
(
SELECT Company, State, Staff
FROM YourCompanyStaffTable
WHERE State IN ('Illinois', 'Texas', 'Tennessee', 'Missouri', 'Kansas', 'Indiana')
) src
PIVOT (
SUM(Staff)
FOR State IN (
'Illinois' as Illinois,
'Texas' as Texas,
'Tennessee' as Tennessee,
'Missouri' as Missouri,
'Kansas' as Kansas,
'Indiana' as Indiana
)
) pvt
ORDER BY Company
В этом запросе новые имена столбцов генерируются из столбца «Состояние».
Обратите внимание, что в исходном запросе также есть ограничение для этих имен.
Это только для эффективностипричины.(меньше данных для извлечения из таблицы)
И он сгруппирует результаты по полям источника, которые не используются в объявлении PIVOT.
В этом случае он автоматически группируется по «Компании»колонка.
Таким образом, он суммирует общую сумму «Штат» для каждого «Штата» на «Компанию».