Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
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
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #2  
Antiguo 14-12-2007
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
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 ....
Responder Con Cita
  #3  
Antiguo 14-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DISTINCT con mySQL Alexis7788 MySQL 10 10-10-2006 17:29:15
Eliminar duplicados con LECT DISTINCT manu SQL 1 13-06-2006 18:03:07
Modify y distinct no funcionan juntos el_barto Conexión con bases de datos 2 29-07-2005 20:27:52
Select Count (distinct X) lunatiko SQL 2 17-10-2004 21:06:45
DISTINCT con query Robert Tablas planas 15 03-11-2003 15:53:38


La franja horaria es GMT +2. Ahora son las 14:07:56.


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
Copyright 1996-2007 Club Delphi