Ver Mensaje Individual
  #17  
Antiguo 07-09-2012
Avatar de jooooseph
jooooseph jooooseph is offline
Miembro
 
Registrado: oct 2007
Posts: 50
Reputación: 17
jooooseph Va por buen camino
Cita:
Empezado por roman Ver Mensaje
En MySQL podemos hacer esto:

Código SQL [-]select nombre, sum(if(extract(month from fecha) = 1, monto, 0)) as enero, sum(if(extract(month from fecha) = 2, monto, 0)) as febrero, ... sum(if(extract(month from fecha) = 12, monto, 0)) as diciembre from ingresos group by nombre


que, me parece, da el resultado que quieres y sin usar subconsultas ni tablas temporales. Supongo que en Firebird se puede hacer algo similar si tiene un condicional IF y alguna función para extraer las partes de una fecha.

Por cierto, tu tabla de ingresos debería llevar el código del cliente en lugar de su nombre, ¿no crees?

// Saludos
Hola Roman. Gracias por el Aporte, estoy viendo una nueva forma de consulta que voy a ver como funciona, pero la consulta que tengo desarrollada ya me esta funcionando. que es la siguiente

Código SQL [-]
SELECT
  CLIENTE.NOMBRE,
  (SELECT SUM(INGRESO.MONTO) FROM INGRESO WHERE CLIENTE.NOMBRE = INGRESO.NOMBRE AND (EXTRACT(MONTH FROM FECHA_INGRESO) = 1) AND (EXTRACT(YEAR FROM FECHA_INGRESO) = 2012)) As "ENERO",
  (SELECT SUM(INGRESO.MONTO) FROM INGRESO WHERE CLIENTE.NOMBRE = INGRESO.NOMBRE AND (EXTRACT(MONTH FROM FECHA_INGRESO) = 2) AND (EXTRACT(YEAR FROM FECHA_INGRESO) = 2012)) As "FEBRERO"
FROM ( SELECT DISTINCT NOMBRE
           FROM CLIENTE)

Este tipo de consulta me hace el reporte anual de diferentes años, claro esta que el 2012 debera ser ingresado como variable.

Voy a modificar mi consulta por una de tu tipo ROMAN.


Gracias por la AYUDA a todos
Responder Con Cita