tabla de referencias cruzadas en SQL

18/07/2007 - 09:45 por Oscar Serna | Informe spam
Hola,

Me gustaría saber en SQL cómo puedo hacer una consulta de una tabla pasando
los valores de una linea a columnas, por ejemplo, tengo una tabla con la
facturación de la empresa y tengo una linea por cliente, mes, año, etc... Lo
que quiero es pasar el mes a columnas para agrupar el importe debajo de cada
columna correspondiente al mes. En access se llaman tablas de referencias
cruzadas pero en sql no lo he hecho nunca, agradecería vuestra ayuda.
Gracias.

Un saludo,
Oscar.
 

Leer las respuestas

#1 Miguel Egea
18/07/2007 - 11:03 | Informe spam
Si es en SQL 2005 mira la ayuda de la cláusula PIVOT si es en 2000 tienes
que usar case

/* codigo imaginario, sin probar */
Select idproducto, case year(fecha) when 2003 then Importe as Ventas_2003
else 0 end,
case year(fecha) when 2004 then Importe as Ventas_2004 else 0 end,
case year(fecha) when 2005 then Importe as Ventas_2005 else 0 end
from tuTabla
o bien
Select idproducto, case year(fecha) when 2003 then Sum(Importe) as
Ventas_2003 else 0 end,
case year(fecha) when 2004 then Sum(Importe) as Ventas_2004 else 0
end,
case year(fecha) when 2005 then Sum(Importe) as Ventas_2005 else 0
end
from tuTabla
group by idProducto, year(fecha)


Saludos






"Oscar Serna" wrote in message
news:%23zIUf%
Hola,

Me gustaría saber en SQL cómo puedo hacer una consulta de una tabla
pasando los valores de una linea a columnas, por ejemplo, tengo una tabla
con la facturación de la empresa y tengo una linea por cliente, mes, año,
etc... Lo que quiero es pasar el mes a columnas para agrupar el importe
debajo de cada columna correspondiente al mes. En access se llaman tablas
de referencias cruzadas pero en sql no lo he hecho nunca, agradecería
vuestra ayuda. Gracias.

Un saludo,
Oscar.

Preguntas similares