Hacer una tabla cruzada
Publicado por DAVID (2 intervenciones) el 04/05/2012 13:36:37
Duda de tabla cruzada
Necesitamos crear un COUNT(*) en forma de tabla en lugar de en forma de columna. ¿Nos podéis ayudar? Gracias por adelantado.
Tenemos la TABLA1 como sigue:
NUM SEG1 SEG2
1 1 1
2 1 1
3 2 2
4 2 2
5 2 3
6 3 3
Queremos una query que nos de la TABLA3 como sigue:
0
1 2 0 0 2
2 0 2 1 3
3 0 0 1 1
SUM1 2 2 2 6
SEG1
1 2 3 SUM2
SEG2 1 2 0 0 2
2 0 2 1 3
3 0 0 1 1
SUM1 2 2 2 6
Lo que hacemos es lo siguiente:
Primero ejecutamos la query:
SELECT SEG1, SEG2, COUNT(*) AS CUENTA
FROM TABLA1
GROUP BY SEG1, SEG2
ORDER BY SEG1, SEG2
para obtener la TABLA2:
SEG1 SEG2 CUENTA
1 1 2
2 2 2
2 3 1
3 3 1
Con ese resultado seguimos a mano para obtener la TABLA3.
SEG1
1 2 3 SUM2
SEG2 1 2 0 0 2
2 0 2 1 3
3 0 0 1 1
SUM1 2 2 2 6
¿Hay alguna forma de automatizarlo con SQL sin hacer este segundo paso a mano?
Gracias y saludos
Necesitamos crear un COUNT(*) en forma de tabla en lugar de en forma de columna. ¿Nos podéis ayudar? Gracias por adelantado.
Tenemos la TABLA1 como sigue:
NUM SEG1 SEG2
1 1 1
2 1 1
3 2 2
4 2 2
5 2 3
6 3 3
Queremos una query que nos de la TABLA3 como sigue:
0
1 2 0 0 2
2 0 2 1 3
3 0 0 1 1
SUM1 2 2 2 6
SEG1
1 2 3 SUM2
SEG2 1 2 0 0 2
2 0 2 1 3
3 0 0 1 1
SUM1 2 2 2 6
Lo que hacemos es lo siguiente:
Primero ejecutamos la query:
SELECT SEG1, SEG2, COUNT(*) AS CUENTA
FROM TABLA1
GROUP BY SEG1, SEG2
ORDER BY SEG1, SEG2
para obtener la TABLA2:
SEG1 SEG2 CUENTA
1 1 2
2 2 2
2 3 1
3 3 1
Con ese resultado seguimos a mano para obtener la TABLA3.
SEG1
1 2 3 SUM2
SEG2 1 2 0 0 2
2 0 2 1 3
3 0 0 1 1
SUM1 2 2 2 6
¿Hay alguna forma de automatizarlo con SQL sin hacer este segundo paso a mano?
Gracias y saludos
Valora esta pregunta


0