Cas de Sum Colum () après le pivot

Désolé si je n'explique pas très bien, et le titre n'est pas très clair. J'utilise SQL Server 2005. J'ai une requête avec Pivot qui fonctionne bien, mais sachez que je dois append une nouvelle requête qui obtient des résultats sortingmessortingels.

C'est ma requête pour get le résultat du mois

WITH PivotData AS ( SELECT idWatimetro, mes,ano, valor FROM E_Registros_Watimetros where ano = 2012 ) SELECT * FROM PivotData PIVOT(SUM(valor) FOR idWatimetro IN ([1],[2],[3],[4],[5] AS P order by mes; 

entrez la description de l'image ici

Donc, sachez que je veux get quatre registres

 1 With Month 1+2+3 2 Wint Month 4+5+6 3 With Month 7+8+9 4 Wint Month 10+11+12 

entrez la description de l'image ici

J'ai essayé avec UNION TOUT mais ne fonctionne pas comme je m'attendais, Toute aide sera reconnaissante, et désolé pour mon mauvais anglais et explication.

C'est ma requête sans résultat

 SELECT * FROM ( SELECT idWatimetro, ano,mes, valor FROM E_Registros_Watimetros WHERE (ano = 2012 and mes = 1 ) or (ano = 2012 and mes = 2)or (ano = 2012 and mes = 3) UNION ALL SELECT idWatimetro, ano,mes, valor FROM E_Registros_Watimetros WHERE (ano = 2012 and mes = 4 ) or (ano = 2012 and mes = 5)or (ano = 2012 and mes = 6) ) AS SourceTable PIVOT(SUM(valor) FOR idWatimetro IN ([1],[2],[3],[4],[5]))AS P 

Merci avancé.

    Essayez quelque chose comme …

      ; WITH PivotData AS ( SELECT idWatimetro ,CASE WHEN mes IN (1,2,3) THEN 1 WHEN mes IN (4,5,6) THEN 2 WHEN mes IN (7,8,9) THEN 3 WHEN mes IN (10,11,12) THEN 4 END AS mes ,ano ,valor FROM E_Registros_Watimetros where ano = 2012 ) SELECT * FROM PivotData PIVOT(SUM(valor) FOR Mes IN ([1],[2],[3],[4]))p 

    Vous pouvez GROUP BY numéro de sortingmestre, c'est-à-dire mes - (mes - 1) % 3 , sur le jeu de résultats du PIVOT :

     WITH PivotData AS ( SELECT idWatimetro, mes,ano, valor FROM E_Registros_Watimetros where ano = 2012 ), PivotResult AS ( SELECT * FROM PivotData PIVOT(SUM(valor) FOR idWatimetro IN ([1],[2],[3],[4],[5])) AS P ), SELECT CASE mes - (mes - 1) % 3 WHEN 1 THEN '1st' WHEN 4 THEN '2nd' WHEN 7 THEN '3rd' ELSE '4th' END AS quarter, 2012 AS ano, sum([1]) AS [1], sum([2]) AS [2], sum([3]) AS [3], sum([4]) AS [4], sum([5]) AS [5] FROM PivotResult GROUP BY mes - (mes - 1) % 3