Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

que aparezcan todas las columnas en tablas de refencias cruzadas access!!

Estas en el tema de que aparezcan todas las columnas en tablas de refencias cruzadas access!! en el foro de Bases de Datos General en Foros del Web. Hola, Hago una tabla de referencias cruzadas donde quiero que aparescan los montos por año segun la fecha de ventas. La cuestion es que aparecen ...
  #1 (permalink)  
Antiguo 06/12/2010, 09:06
 
Fecha de Ingreso: noviembre-2008
Mensajes: 112
Antigüedad: 15 años, 5 meses
Puntos: 0
que aparezcan todas las columnas en tablas de refencias cruzadas access!!

Hola,

Hago una tabla de referencias cruzadas donde quiero que aparescan los montos por año segun la fecha de ventas.

La cuestion es que aparecen columnas de años segun la fecha que se vendio.

Por ejemplo

Cliente - Año 2009 - Año 2010 - Total

Pero si hay años que no tienen ventas no figuran directamente, y yo quisieran que figuren el año 2007 y 2008 tambien. Aunque no haya ventas y el monto sea 0 o quede vacio.

Como hago????
  #2 (permalink)  
Antiguo 06/12/2010, 15:16
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: que aparezcan todas las columnas en tablas de refencias cruzadas access!!

Buenas tardes sebak2003, no estoy seguro de que esto se pueda hacer en access, pero es cuestión de que investigues alguna sintaxis parecida.

Supongmos que tu tabla de ventas tenga más o menos los siguientes datos

Fecha|Monto
--------------------
2007-01-01| 10
2009-01-01| 20
2010-01-01| 21
2007-01-01| 12
2009-01-01| 13
2010-01-01| 31

Si observas los datos podrás ver que para el año 2008 no existen ventas. Tu podrías hacer entonces algo como esto:

Código SQL:
Ver original
  1. SELECT
  2. SUM(CASE WHEN YEAR(fecha) = 2007 THEN monto ELSE 0 END) AS Ventas_2007,
  3. SUM(CASE WHEN YEAR(fecha) = 2008 THEN monto ELSE 0 END) AS Ventas_2008,
  4. SUM(CASE WHEN YEAR(fecha) = 2009 THEN monto ELSE 0 END) AS Ventas_2009,
  5. SUM(CASE WHEN YEAR(fecha) = 2010 THEN monto ELSE 0 END) AS Ventas_2010
  6. FROM Ventas

de tal manera que el resultado de la consulta anterior sería

Ventas_2007|Ventas_2008|Ventas_2009|Ventas_2010
------------------------------------
22|0|33|52

Espero que esto sea más o menos lo que necesitas hacer.

Saludos

Etiquetas: access, columnas, tablas, todas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:14.