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

Ayudita porfaaaa =)

Estas en el tema de Ayudita porfaaaa =) en el foro de Mysql en Foros del Web. Holaaaaa estoy aqui con una duda, para ver si alguien tan gentilmente me ayuda, tengo una consulta en mysql pero no hay algo que no ...
  #1 (permalink)  
Antiguo 23/04/2010, 08:23
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años
Puntos: 1
Ayudita porfaaaa =)

Holaaaaa estoy aqui con una duda, para ver si alguien tan gentilmente me ayuda, tengo una consulta en mysql pero no hay algo que no me muestra, pero no se si es por como estoy haciendo la consulta, para hacerme entender mejor les voy a mostrar mi consulta:

Código MySQL:
Ver original
  1. SELECT YEAR(FECHA) AS ANO, MONTH(FECHA) AS MES, COUNT(*) AS MOVIMIENTOS, SUM(IF(CXC= 1,NETO,0))
  2. AS DEBE, SUM(IF(CXC=-1,NETO,0)) AS HABER, SUM(IF(CXC= 1,NETO,0))-SUM(IF(CXC=-1,NETO,0)) AS SALDO
  3. FROM CLIENTE WHERE CODIGO='0000000001' GROUP BY YEAR(FECHA),MONTH(FECHA)
  4. SELECT YEAR(FECHA) AS ANO, 'Total' AS MES, COUNT(*) AS MOVIMIENTOS, SUM(IF(CXC= 1,NETO,0))
  5. AS DEBE, SUM(IF(CXC=-1,NETO,0)) AS HABER, SUM(IF(CXC= 1,NETO,0))-SUM(IF(CXC=-1,NETO,0)) AS SALDO
  6. FROM CLIENTE WHERE CODIGO='0000000001' GROUP BY YEAR(FECHA) ORDER BY ANO, MES


y el resultado que me da es este, dentro del manejador de la base de datos:


AÑO-----MES-----MOVIMIENTOS-----DEBE------HABER-----SALDO
2009----11-------1---------------------6500------6500--------0
2009----12-------2---------------------10000----10000-------10000
2009----TOTAL--3---------------------16500----16500-------10000
2010----1--------2---------------------12000-----0-------------12000
2010----TOTAL--2---------------------12000-----0-------------12000

La línea que esta en rojo es la que considero que esta mala pero no se como resolver esta consulta, porque el saldo no puede ser 12000 tiene que ser 22000 ya que debe traerme el saldo del año anterior pero no se comooooooo si alguien me ayuda porfaaaaaaaaaaaaaa estoy que me jalo de las greñas
  #2 (permalink)  
Antiguo 23/04/2010, 13:59
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Ayudita porfaaaa =)

Saludos

Podrias explicarte mejor cual es el resultado que quieres ver en tu consulta ya que no te entendi
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 23/04/2010, 16:41
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Ayudita porfaaaa =)

no entiendo porque el saldo debe ser 22.000, si estas detallando que tu saldo es igual a la resta de la suma de los debe con el haber y 12000 - 0 es 12000 de donde sacas el 10000 que no veo por ningun lado en la fila roja
  #4 (permalink)  
Antiguo 26/04/2010, 06:46
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años
Puntos: 1
Respuesta: Ayudita porfaaaa =)

O sea los 10000 son los del año anterior, a eso es que me refiero porque saldo es igual a esa resta(debe-haber), pero si el saldo del año anterior es mayor a cero entonces hay que sumarcelo a enero del nuevo año, a eso es que me refiero si se puede hacer dentro de la consulta.
  #5 (permalink)  
Antiguo 26/04/2010, 07:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Ayudita porfaaaa =)

Se puede, pero es muy probable que debas usar variables de usuario y agrupamientos con ROLLBACK, las que resultarán con una sintaxis muy compleja.
Me parece que será mucho más sencillo hacer las consultas por separado e integrarlas luego por medio de programación cuando las muestres en el formulario...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 26/04/2010, 07:48
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años
Puntos: 1
Respuesta: Ayudita porfaaaa =)

Ah ok bueno gracias es que por lineas de programacion se me ha hecho un poco dificil obtener el saldo del año anterior en el mes de enero de un nuevo año, por eso se me ocurrio pedir ayudita para ver si por mysql lo resolvia, pero igual gracias
  #7 (permalink)  
Antiguo 26/04/2010, 08:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Ayudita porfaaaa =)

En ese caso, lo que puedes hacer es obtener el listado con subtotales por año, de modo que luego te sea más sencillo hacer la cuenta.
Empecemos probando la salida de esta consulta:
Código MySQL:
Ver original
  1.   IF(MES IS NULL, IF(ANNO IS NULL, 'Total', 'Subtotal'),ANNO)ANNO,
  2.   IFNULL(MES,'')MES,
  3.   MOVIMIENTOS,
  4.   DEBE,
  5.   HABER,
  6.   IF(MES IS NULL, (DEBE-HABER), 0)SALDO
  7.     YEAR(FECHA) ANNO,
  8.     MONTH(FECHA) MES,
  9.     COUNT(*) MOVIMIENTOS,
  10.     SUM(IF(CXC= 1,NETO,0))DEBE,
  11.     SUM(IF(CXC=-1,NETO,0)) HABER,
  12.   FROM CLIENTE
  13.   WHERE CODIGO='0000000001'
  14.   GROUP BY ANNO, MES WITH ROLLUP) T1;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 26/04/2010, 09:35
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años
Puntos: 1
Respuesta: Ayudita porfaaaa =)

gnzsoloyo muchas gracias por tu aporte ya solucione mi problema.......

Etiquetas: Ninguno
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 04:01.