Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Uso del DISTINCT (https://www.clubdelphi.com/foros/showthread.php?t=50808)

MaMu 28-11-2007 19:32:17

Uso del DISTINCT
 
Yo hago la siguiente consulta sin problemas

Código Delphi [-]
    QListadoDetalle.Filter:='id_cliente='+IntToStr(id_cliente);
    QListadoDetalle.Filtered:=True;
    QListadoDetalle.Close;
    QListadoDetalle.SQL.Clear;
    QListadoDetalle.SQL.Add('select * from trabajos INNER JOIN (remitos INNER JOIN clientes on clientes.id_cliente=remitos.id_cliente) on remitos.id_remito=trabajos.id_remito');
    QListadoDetalle.Open;
    QListadoDetalle.First;

Pero quiciera porder hacer un DISTINCT en la tabla remitos, para que no me repita tanto id_remito como trabajos encuentre.

Como puedo hacer?

Saludos y gracias

Kenobi 14-12-2007 00:01:24

Creo que la solucion esta en usar Subconsultas ....
 
Creo que la solucion esta en usar Subconsultas en vez de uniones ....claro si tu manejador las soporta .....



en vez de hacer el
Código Delphi [-]
sql.add('select blablabala blal blala ')

Código SQL [-]
select * from trabajos where idtrabajos in
(select idtrabajos from remitos where  remitos.idtrabajos=trabajos.idtrabajos)
claro esta veo que hay otra tabla involucrada asi que el lugar de la subconsulta colocas esa tabla con el join en cuestion y listo te salen solo los trabajos que tengan ocurrencia con la subconsulta del join y "voila" te evitas los duplicados......


Espero haber ayudado y lamento no entender mejor la estructura de tus tablas ....

Lepe 14-12-2007 18:15:48

Necesitas un right join o quizás un outer join... no sé:
Código SQL [-]
select * from trabajos t right JOIN 
(remitos  r inner JOIN clientes c on c.id_cliente=r.id_cliente) 
on  r.id_remito=t.id_remito

perdona por usar alias de tablas, yo lo veo más cómodo así.

Busca más información en google sobre right join, left joing, left outer join, etc, para ver las posibilidades.

Saludos


La franja horaria es GMT +2. Ahora son las 17:47:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi