Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-05-2012
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question Filtrar 2 tablas entre si

Estimados, nuevamente necesito de vuestra solidaria ayuda, tengo una pequeña duda, normalmente cuando necesito filtrar 2 tablas entre si, siempre me a tocado según algún criterio en común, pero en este caso necesito a la inversa, tengo una lista de correos (DBGrid1) donde muestra todas las cuentas de correos inscritas y una lista 2 (DBGrid2) en donde solo muestra los destinatarios previamente ingresados con doble clic de la lista 1 (DBGrid1), la pregunta, de que manera puedo filtrar la lista 1 para que solo me muestre los correos que no están en la lista 2??? que la tabla 1 refleje los correos no ingresados en la tabla 2 mientras se agregan... Se entiende???
De antemano muchísimas gracias…
Responder Con Cita
  #2  
Antiguo 04-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lenny.
Cita:
de que manera puedo filtrar la lista 1 para que solo me muestre los correos que no están en la lista 2 ???
Probá con esta consulta:
Código SQL [-]
SELECT *     
FROM TABLA1 T1
WHERE NOT EXISTS (SELECT T2.ID FROM TABLA2 T2 WHERE T2.TABLA1_ID = T1.ID)

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 04-05-2012 a las 01:47:59.
Responder Con Cita
  #3  
Antiguo 05-05-2012
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Exclamation Gracias...

Gracias estimado, aunque me lio muchisimo con las consultas tratare de sacarlo adelante, igualmente si me puedes echar una mano de como usarlo te lo agradeceria bastante...

Utilizodelphi 2010, MySQL, Zeos 7.0.0...
Responder Con Cita
  #4  
Antiguo 05-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lenny.

Para brindarte una ayuda más concreta, sería bueno si nos pones los campos de las dos tablas (solo los relevantes no es necesario que los incluyas a todos). También es importante conocer mediante cuál campo se relacionan ambas tablas.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 05-05-2012
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question

Dale, mira, te explico en detalle y lo mas resumido posible:

Tengo Delphi 2010, MySQL, Zeos 7.0.0.
Tengo 8 componentes, 2 DBGrid, 2 DataSource, 2 ZConnection, 2 ZTable...
Los cuales se llaman:
DBGrid1, DataSource1 = Correos, ZConnection1 = Correos_C, ZTable1 = Correos_T
DBGrid2, DataSource2 = CorreosNC, ZConnection2 = CorreosNC_C, ZTable2 = CorreosNC_T

La idea como les comentaba, es poder a travez de un boton o doble clic pasar los datos (en este caso correos y usuarios) a la otra tabla, lo hago de esta manera:

Código Delphi [-]
CorreosNC_T.Insert;
CorreosNC_T.FieldbyName('AREA').AsString := Correos_T.FieldbyName('AREA').AsString;
CorreosNC_T.FieldbyName('NOMBRE').AsString := Correos_T.FieldbyName('NOMBRE').AsString;
CorreosNC_T.FieldbyName('CORREO').AsString := Correos_T.FieldbyName('CORREO').AsString;
CorreosNC_T.Post;

Tonces, lo que necesito es que la Tabla1 salgan los correos que no estan en la Tabla2, ya que la Tabla1 es comunitaria. Se entiende???.

De antemano muchisimas gracias, por ak estare pendiente...

Última edición por Lenny fecha: 05-05-2012 a las 01:20:59.
Responder Con Cita
  #6  
Antiguo 05-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lenny.

En realidad me refería a la estructura de las tablas, pero vamos a suponer que:

TABLA1
Cita:
ID (identificador)
CP1
CP2
TABLA2
Cita:
ID (identificador)
CP1
CP2
CP3
TABLA1_ID ( campo referencia a TABLA1 (en común) )
Algún campo en comun tendrán que tener por que si no sería imposible saber cuáles registros de la TABLA1 no están en la TABLA2. En este caso es: TABLA2.TABLA1_ID = TABLA1.ID.

Entonces para la TABLA1 y desde Delphi sería algo así:
Código Delphi [-]
...
  with TuQuery do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM TABLA1 T1 ');
    SQL.Add('WHERE NOT EXISTS ');
    SQL.Add('(SELECT T2.ID FROM TABLA2 WHERE T2.TABLA1_ID = T1.ID)');
    Open;
  end;
...
Es por eso que te pedía los nombres reales de campos y tablas; para evitarte las traducciones...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
filtrar 2 tablas BlueSteel SQL 4 23-07-2011 01:37:23
Filtrar tres tablas paradox al tiempo Camilo Conexión con bases de datos 3 09-10-2007 11:50:51
Problema al filtrar un Query entre fechas judit25 Conexión con bases de datos 18 20-04-2007 01:03:38
Filtrar Registros entre fechas capitan_nemo Tablas planas 1 02-04-2007 09:12:55
Update entre tablas rafadrover SQL 4 20-08-2003 21:42:49


La franja horaria es GMT +2. Ahora son las 12:40:02.


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