Question :
Vous devez transposer une table SQL à plusieurs colonnes, par exemple :
<code>Day A B --------- Mon 1 2 Tue 3 4 Wed 5 6 Thu 7 8 Fri 9 0</code>
Transposer au format suivant :
<code>Value Mon Tue Wed Thu Fri -------------------------- A 1 3 5 7 9 B 2 4 6 8 0</code>
Solution :
Pour transposer un tableau à plusieurs colonnes, vous pouvez utiliser les fonctions UNPIVOT et PIVOT ensemble.
select day, col, value from yourtable unpivot ( value for col in (A, B) ) unpiv
select * from ( select day, col, value from yourtable unpivot ( value for col in (A, B) ) unpiv ) src pivot ( max(value) for day in (Mon, Tue, Wed, Thu, Fri) ) piv
Cela générera le tableau transposé requis.
Notes supplémentaires :
select * from ( select day, col, value from yourtable cross apply ( values ('A', ACalls), ('B', BCalls) ) c (col, value) ) src pivot ( max(value) for day in (Mon, Tue, Wed, Thu, Fri) ) piv
select * from ( select LEFT(datename(dw,datetime),3) as DateWeek, col, value from DataTable cross apply ( values ('A', ACalls), ('B', BCalls) ) c (col, value) ) src pivot ( sum(value) for dateweek in (Mon, Tue, Wed, Thu, Fri) ) piv
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!