Ayuda sobre Pivot Tables en SQL

10/09/2004 - 01:03 por Kenneth Quiros | Informe spam
Por favor, si alguien puede ayudarme, necesito realizar
un reporte y no se como hacerlo desde sql con pivot.
La tabla es algo asi:
iduser | product | qty | val | month
12312e | xxxx | 15 | 100 | Jan04
12312e | xxxx | 12 | 550 | Feb04
12312e | xxxx | 15 | 50 | Mar04
12312e | yyyy | 22 | 50 | Jan04
12312e | yyyy | 50 | 150 | Feb04

y el reporte deberia ser asi:

| Jan04 | Feb04 | Mar04 |TQty|TVal|
Product | Qty | Val | Qty | Val | Qty | Val | | |
xxxx | 15 | 100 | 12 | 550 | 15 | 50 | 42 |700 |
yyyy | 22 | 50 | 50 | 150 | 0 | 0 | 72 |200 |
Total | 37 | 150 | 62 | 700 | 15 | 50 |114 |900 |

Preguntas similare

Leer las respuestas

#1 Isaías
10/09/2004 - 02:09 | Informe spam
Respuesta Responder a este mensaje
#2 Isaías
10/09/2004 - 17:36 | Informe spam
Un ejemplo vale mas que 1000 palabras

For example, given data as shown below:

ID year type amt
7 1999 1 23
8 1999 2 44
9 1999 3 55
10 2000 1 66
11 2000 2 77
12 2000 3 88
13 1999 1 11

... you can pivot the data to show the years down the side
and the types across the top...
year 1 2 3 RowTotal
1999 34 44 55 133
2000 66 77 88 231

... and get the SQL which would produce this table

SELECT Pivot_Data.*,
(Pivot_Data.[1] + Pivot_Data.[2] + Pivot_Data.[3])
AS RowTotal
FROM (SELECT [year],
SUM(CASE [type] WHEN '1' THEN [amt] ELSE 0 END) AS
[1],
SUM(CASE [type] WHEN '2' THEN [amt] ELSE 0 END) AS
[2],
SUM(CASE [type] WHEN '3' THEN [amt] ELSE 0 END) AS [3]
FROM (select * from zzjunk) AS Base_Data
GROUP BY [year]) AS Pivot_Data
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida