Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta de dos tablas Firebird (https://www.clubdelphi.com/foros/showthread.php?t=69081)

jafera 24-07-2010 15:58:00

Consulta de dos tablas Firebird
 
Buenas de nuevo a todos.

Utilizo Delphi 6 y Firebird 1.5.

Tengo dos tablas

Tabla Camiones con los campos ID_CAMION, MARCA, MODELO
y tabla Codigos con los campos ID_CODIGO, ID_CAMION, CODIGO

lo que necesitaria es saber que registros de la tabla camiones no figuran ninguna vez en la tabla codigos, es decir el que ID_CAMION de la tabla Camiones no tenga correspondencia con ningun valor d la tabla codigos

Ejemplo

Tabla Camiones

ID_Camion Marca Modelo
1 Mercedes Atego 1528
2 Pegaso 1180
3 Iveco Trakker
4 Mecedes Atego 1528

Tabla Codigos

ID_Codigo ID_Camion Codigo
1 1 23
2 3 40

Pues bien en la consulta deberian aparecer los registros 2 y 4 de la tabla camiones.

Gracias por leerme, espero vuestro SOS

Josep

rgstuamigo 24-07-2010 17:33:09

El problema que mencionas es simple;), pero como deseo que puedas entender y aprender te dejo el siguiente link que te explica cómo hacerlo y mucho más.;) Es un artículo que es totalmente válido para Firebird u otro servidor de base de datos.;).
Saludos...:)

Caral 24-07-2010 17:48:59

Hola
Código Delphi [-]
QTemp.SQL.Text := 'Select Codigo.ID_CAMION, Camiones.ID_CAMION From Camiones, Codigo WHERE Codigo.ID_CAMION <> Camiones.ID_CAMION  ';
QTemp.Active := True;
   While not QTemp.Eof do
   begin
      Combobox1.Items.Add(QTemp.Fields[0].Text);
      QTemp.Next;
   end;
QTemp.Active := False;
Saludos

marcoszorrilla 24-07-2010 18:07:36

Otra versión aparte de lo ya dicho que es mucho:

Código SQL [-]
Select C.ID_Camion, C.Marca, C.Modelo  from Camiones As C Where C.ID_Camion Not In (Select CD.ID_Camion from Codigos as CD);
Un Saludo.

Caral 24-07-2010 18:13:55

Hola
Hay que reconocer que esta mas bonita :D
Pense en un select doble, pero me imagine que jafera no maneja mucho sql y no le quise complicar el asunto :p
Otra cosa que pense: Que pasa si tiene ID duplicados?.
Deberia de hacer la consulta con un DISTINCT.:)
Saludos

jafera 24-07-2010 22:43:32

Gracias por las rápidas respuestas, sois la leche para los que tenemos la programacion Delphi como hobby, yo todo lo que hago es para uso personal y creedme, ayudais un montón, siento que muchas veces yo no pueda contestar a los post con la contundencia que lo haces vosotros, pero se va intentando, no en vano ya levo casi... 100 posts.

Esta tarde probé el codigo siguiente y me funciono

Código SQL [-]
 
SELECT * FROM BOM0001 
WHERE ID_CAMION NOT IN (SELECT ID_CAMION FROM BOM0001A)

Una cosa si que tengo claro es que no se repitan los ID en ninguna tabla.

Repito gracias a todos

Josep

Caral 25-07-2010 00:37:50

Hola
Cita:

Empezado por jafera (Mensaje 371495)
......
tenemos la programacion Delphi como hobby, yo todo lo que hago es para uso personal

Ya somos dos..:)

Cita:

Empezado por jafera (Mensaje 371495)
no en vano ya levo casi... 100 posts.

Vamos a tener que celebrarlo, Yo tambien celebre mis primeros 100 ya que nadie lo hacia por mi jejeje.
Yo me apunto a la fiesta.
Saludos


La franja horaria es GMT +2. Ahora son las 20:08:09.

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