Ver Mensaje Individual
  #7  
Antiguo 07-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jooooseph Ver Mensaje
Lo que necesito es que me muestre si es posible de la siguiente forma.
Código:
Nombre ... | Enero  | Febrero | Marzo | ...... hasta | Diciembre
-----------+--------+---------+-------+-------------------------
Cesar .... | 100.00 | 20.00   | -     | ...... -
Juan ....  | 200.00 | -       | -     | ...... -
Pedro .... | 100.00 | -       | -     | ...... -
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

Última edición por roman fecha: 07-09-2012 a las 18:59:51.
Responder Con Cita