Oui je pense que oui. Il est facile de faire un pivot comme celui-ci avec un MAX
agrégé :
SELECT
*
FROM
(
SELECT
project,
attribute,
value
FROM
table1
) AS SourceTable
PIVOT
(
MAX(value)
FOR attribute IN ([foo],[bar],[baz])
) AS pvt
Sinon, vous devez faire une déclaration de cas à l'intérieur de l'agrégat a max. Comme ceci :
SELECT
MAX(CASE WHEN attribute='foo' THEN value ELSE NULL END) AS foo,
MAX(CASE WHEN attribute='bar' THEN value ELSE NULL END) AS bar,
MAX(CASE WHEN attribute='baz' THEN value ELSE NULL END) AS baz,
project
FROM
table1
GROUP BY
project
C'est presque la même chose que de faire le PIVOT
. Mais je préférerais faire le PIVOT
sur le CASE WHEN MAX
..