Wymagane jest użycie funkcji agregującej, jeśli używasz PIVOT
. Jednak ponieważ Twój (RespondentId, QuestionId)
kombinacja jest unikalna, twoje "grupy" będą miały tylko jeden wiersz, więc możesz użyć MIN()
jako funkcja agregująca:
SELECT RespondentId, CanBathe, TimesADay, SoapPrice
FROM (SELECT RespondentId, ColumnName, AnswerValue FROM MyTable) AS src
PIVOT (MIN(AnswerValue) FOR ColumnName IN(CanBathe, TimesADay, SoapPrice)) AS pvt
Jeśli grupa zawiera tylko jeden wiersz, to MIN(value) = value
lub innymi słowy:funkcja agregująca staje się funkcją tożsamościową.