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

Una Consulta q no puedo sacar...

Estas en el tema de Una Consulta q no puedo sacar... en el foro de Mysql en Foros del Web. Necesito una ayudita con esta consulta que deseo generar. Tengo una tabla clientes y otra pagos. Tengo que en una consulta obtener el ultimo pago ...
  #1 (permalink)  
Antiguo 29/12/2009, 13:21
 
Fecha de Ingreso: febrero-2007
Mensajes: 32
Antigüedad: 17 años, 2 meses
Puntos: 0
Una Consulta q no puedo sacar...

Necesito una ayudita con esta consulta que deseo generar.

Tengo una tabla clientes y otra pagos.

Tengo que en una consulta obtener el ultimo pago de cada cliente, pero mostrar solo un pago por cliente, el ultimo.

Yo hice:

"select * FROM cuota, cliente WHERE cliente_cuota=id_cliente order by fecha_cuota desc"


Esa consulta me trae las cuotas de mis clientes en el orden que quiero, pero me trae muchas por cliente. Yo solo quiero la ultima de cada uno.

También probé con:

"select * FROM cuota, cliente WHERE cliente_cuota=id_cliente group by id_cliente desc"

pero si bien me trae solo una de cada cliente, no me trae la ultima.

Alguna ayudita? gracias.
  #2 (permalink)  
Antiguo 29/12/2009, 17:37
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Una Consulta q no puedo sacar...

deberias pasarle un groupby a tu sql

select FROM cuota, cliente WHERE cliente_cuota=id_cliente order by fecha_cuota desc

algunos tips
regresar * en casos esepcionales, sino devolve solo los datos q necesitas
a las tablas agregarle alias y hacer la convinacion con join

quedaria algo asi

select cli.id_cliente, cuo.fecha_couta FROM cliente cli join cuotas cuo join (cli.id_cliente = cou.cliente_couta) groupby cli.id_cliente order by fecha_cuota desc

si queres todos los clientes por mas q no tengan cuota deberias hacer un left join

__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 30/12/2009, 06:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Una Consulta q no puedo sacar...

dariocab,
prueba esta:
SELECT t1.cliente, t1.fecha FROM (select cl.id_cliente cliente, cu.fecha_cuota fecha FROM cuota cu INNER JOIN cliente cl ON cu.cliente_cuota=cl.id_cliente order by cu.fecha_cuota desc)t1 GROUP BY t1.cliente
  #4 (permalink)  
Antiguo 30/12/2009, 09:28
 
Fecha de Ingreso: febrero-2007
Mensajes: 32
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Una Consulta q no puedo sacar...

gracias a ambos por sus respuestas!!

Logré hacerlo con la consulta de jurena. Quedó asi: (las tablas eran otras, lo habia puesto de ejemplo)

$sql="SELECT t1.usuario, t1.fecha, t1.nick_usuario, t1.imagen_entrada FROM (select us.id_usuario usuario, en.fecha_entrada fecha, us.nick_usuario, en.imagen_entrada FROM entrada en INNER JOIN usuario us ON en.usuario_entrada=us.id_usuario WHERE en.estado_entrada=1 order by en.fecha_entrada desc) t1 GROUP BY t1.usuario";


Ok, ahora tengo otra parecida en la que se me complica porque son 3 tablas.

Explico un poquito. Es una especie de fotolog y esto es para mostrar las ultimas entradas de los amigos del usuario. Una entrada por amigo, la ultima.

Tablas:

usuario (id_usuario, ...)
entrada (id_entrada, usuario_entrada, titulo_entrada ...)
amigo (id_amigo, usuario_amigo, amigo_amigo)



Probé hacerlo pero me da error... esta vez son 3 tablas y se complica.
Yo lo que tengo para esta es el id_usuario que es el id del usuario del blog que estoy visitando, en el cual debemos ver las ultimas entradas de sus amigos.

Bueno, espero logren entender lo que pido y puedan ayudarme. mil gracias!
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 10:31.