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

Obtener los registros con saldo cero

Estas en el tema de Obtener los registros con saldo cero en el foro de Mysql en Foros del Web. Hola todos, Tengo un problema obteniendo los datos de una tabla que tiene registrada todas las transacciones de una cuenta corriente, de esta quiero obtener ...
  #1 (permalink)  
Antiguo 07/01/2015, 14:41
 
Fecha de Ingreso: abril-2003
Mensajes: 13
Antigüedad: 21 años
Puntos: 0
Obtener los registros con saldo cero

Hola todos,

Tengo un problema obteniendo los datos de una tabla que tiene registrada todas las transacciones de una cuenta corriente, de esta quiero obtener aquellos clientes que en su ultima transaccion tienen un saldo igual a cero 0.00

Código HTML:
Tabla:CuentaCorriente
+-------------+---------+---------------+-----------+----------+-----------+
  transaccion   cliente    fecha           credito    debito       saldo    
+-------------+---------+---------------+-----------+----------+-----------+
      1           1       01/01/2014        100.00        0.00      100.00  
      2           1       02/01/2014        100.00        0.00      200.00  
      3           1       06/01/2014          0.00      200.00        0.00  
      4          31       01/01/2014        100.00        0.00      100.00  
      5         100       01/01/2014        100.00        0.00      100.00  
      6          15       01/01/2014        100.00        0.00      100.00  
      7          14       01/01/2014        100.00        0.00      100.00  
      8          29       01/01/2014        100.00        0.00      100.00  
      9         100       03/01/2014          0.00      100.00        0.00  
+-------------+---------+---------------+-----------+----------+-----------+
Debería obtener

Código HTML:
Tabla:CuentaCorriente
+-------------+---------+---------------+-----------+----------+-----------+
  transaccion   cliente    fecha           credito    debito       saldo    
+-------------+---------+---------------+-----------+----------+-----------+
      3           1       06/01/2014          0.00      200.00        0.00  
      9         100       03/01/2014          0.00      100.00        0.00  
+-------------+---------+---------------+-----------+----------+-----------+
Ya intente varias formas y no encuentro cómo, este fué el ultimo query

Código SQL:
Ver original
  1. SELECT *
  2. FROM tbl_ctacorriente cta
  3. WHERE cta.saldo=0
  4. GROUP BY cta.cliente HAVING MAX(cta.transaccion)

alguna sugerencia?
  #2 (permalink)  
Antiguo 07/01/2015, 17:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Obtener los registros con saldo cero

Código MySQL:
Ver original
  1. SELECT t1.cliente, t1.fecha, t1.credito, t1.debito, t1.saldo FROM (SELECT cta.cliente, cta.fecha, cta.credito, cta.debito, cta.saldo
  2. FROM tbl_ctacorriente cta
  3. WHERE cta.saldo=0 ORDER BY cta.fecha DESC
  4. GROUP BY cta.cliente)t1 WHERE t1.saldo = 0
  #3 (permalink)  
Antiguo 07/01/2015, 20:20
 
Fecha de Ingreso: abril-2003
Mensajes: 13
Antigüedad: 21 años
Puntos: 0
Gracias pero no funciona

Creo que por ahi va la solucion, enlazando un SELECT en el FROM, pero la sintaxis no esta bien en tu cita porque para MySQL GROUP va antes del ORDER y al corregirlo lista lo que tienen una transaccion con saldo cero.

Cita:
Iniciado por jurena Ver Mensaje
Código MySQL:
Ver original
  1. SELECT t1.cliente, t1.fecha, t1.credito, t1.debito, t1.saldo FROM (SELECT cta.cliente, cta.fecha, cta.credito, cta.debito, cta.saldo
  2. FROM tbl_ctacorriente cta
  3. WHERE cta.saldo=0 ORDER BY cta.fecha DESC
  4. GROUP BY cta.cliente)t1 WHERE t1.saldo = 0
Como recordaras la condicion es que en "la ultima transaccion" el saldo quede cero y en el caso del cliente 1 tiene una transaccion donde adquiere un nuevo saldo de 500 y de todas maneras me muestra la penultima transaccion donde estaba en cero...

O sea que la tabla hay mas transacciones yo solo mostre las primeras lineas, por ejemplo, en la transaccion 10 el cliente 1 tiene el credito mencionado, o sea que su ultima transaccion no es saldo cero, solo debiera mostrar al cliente 100
Código HTML:
Tabla:CuentaCorriente
+-------------+---------+---------------+-----------+----------+-----------+
  transaccion   cliente    fecha           credito    debito       saldo    
+-------------+---------+---------------+-----------+----------+-----------+
      1           1       01/01/2014        100.00        0.00      100.00  
      2           1       02/01/2014        100.00        0.00      200.00  
      3           1       06/01/2014          0.00      200.00        0.00  
      4          31       01/01/2014        100.00        0.00      100.00  
      5         100       01/01/2014        100.00        0.00      100.00  
      6          15       01/01/2014        100.00        0.00      100.00  
      7          14       01/01/2014        100.00        0.00      100.00  
      8          29       01/01/2014        100.00        0.00      100.00  
      9         100       03/01/2014          0.00      100.00        0.00  
     10           1       08/01/2014        500.00        0.00      500.00  
+-------------+---------+---------------+-----------+----------+-----------+

Última edición por rudva; 07/01/2015 a las 20:27 Razón: Necesidad de incluir ejemplo para ampliar mejor el problema
  #4 (permalink)  
Antiguo 08/01/2015, 11:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Obtener los registros con saldo cero

Perdona, las prisas y no he hecho pruebas. Ahora tampoco. Intenta con esto.
Código MySQL:
Ver original
  1. SELECT t1.cliente, t1.fecha, t1.credito, t1.debito, t1.saldo FROM (SELECT cta.cliente, cta.fecha, cta.credito, cta.debito, cta.saldo
  2. FROM tbl_ctacorriente cta
  3. WHERE cta.saldo=0 ORDER BY cta.fecha DESC)t1 GROUP BY t1.cliente HAVING t1.saldo = 0

Etiquetas: cero, saldo
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 00:23.