SQL Server sépare une colonne dans certaines colonnes

Les données ressemblent à:

Measure Value Date -------------------------------- 1 2.3 2016-01-01 1 2.5 2016-01-02 1 2.6 2016-01-03 2 1.2 2016-01-01 2 1.3 2016-01-02 2 1.4 2016-01-03 

Je veux séparer la colonne Valeur en 2 colonnes en fonction des mesures

La sortie finale devrait ressembler à

 Date Value_Measure_1 Value_Measure_2 --------------------------------------------------------------------- 2016-01-01 2.3 1.2 2016-01-02 2.5 1.3 2016-01-03 2.6 1.4 

La seule façon que je peux find est l'auto-adhésion.

Y a-t-il une autre méthode qui pourrait le faire mieux?

Je vous remercie!

Si vous n'avez qu'une seule ligne par date et par mesure, vous pouvez le faire de la façon suivante:

 select Date, max(case when Measure = 1 then value end) as Value_Measure_1 max(case when Measure = 2 then value end) as Value_Measure_2 from yourtable group by Date 

Utiliser l'agrégation conditionnelle:

 SELECT t.date, MAX(CASE WHEN t.Measure = 1 THEN t.Value END) as val_meas_1, MAX(CASE WHEN t.Measure = 2 THEN t.Value END) as val_meas_2 FROM YourTable t GROUP BY t.date 

Je vais vous suggérer d'utiliser la fonction pivot avec du T-SQL.