PDA

Ver la Versión Completa : Consulta Select


ramiro024
23-11-2012, 01:01:56
Buenas, no se si este sera el lugar indicado para mi pregunta,espero que si.
Estoy trabajando con delphi 7 y sql manager, mi problema es que necesito hacer una consulta desde dos tablas, supongamos algo asi

TABLA 1: 10, 20, 30, 40, 50. 60, 70, 80, 90
TABLA 2: 60, 70, 80, 90

En la consulta lo que quiero lograr en que me arroje como resultado en un combobox los valores de la TABLA 1 que no estan en la TABLA 2..no se como se escribe la sentencia, busque sobre operadores pero no funciona con ninguno de los que probe

fdm.consulta1.SQL.Add('TABLA1.NUMERO from TABLA1, TABLA2 where.. y aho no se como seguir, bueno espero que alguien me pueda ayudar,
Gracias!

Faust
23-11-2012, 01:29:09
Saludos, bienvenido y te recomiendo leer la guía de estilo y ser más explícito en tu preguntas, espero poder resolver tu duda...

El sql podría ser así:


SELECT *
FROM TABLA1
WHERE TABLA1.Numero NOT IN (SELECT DISTINCT(TABLA2.Numero) FROM TABLA2)


Creo que ahora si fui el primero :D

Te toca meterlo al combo... el número eh :D

Casimiro Notevi
23-11-2012, 11:40:02
Buenas, no se si este sera el lugar indicado para mi pregunta,espero que si.

Tenemos foros para bases de datos, puedes elegir el que uses: firebird, postgresql, tablas planas, etc.


Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php)?, gracias por tu colaboración :)

Recuerda poner los tags al código fuente, ejemplo:

http://www.clubdelphi.com/images/UtilizarTAGs.png

Gracias :)

ElDioni
23-11-2012, 12:43:20
Hola,

yo lo suelo hacer así:


SELECT DISTINCTROW Tabla1.Codigo
FROM Tabla1 LEFT JOIN Tabla2 ON Tabla1.Codigo = Tabla2.Codigo
WHERE (((Tabla2.Codigo) Is Null));


Saludos.

donpedro
23-11-2012, 20:08:23
hola,,, la logica que presenta Faust es correcta funciona a la perfeccion, ahora si quieres mostrar eso en un combobox creo que esto te serviria.....

COMBOBOX1.CLEAR;
ADOQUERY1.CLOSE;
ADOQUERY1.SQL.CLEAR;
ADOQUERY1.SQL.ADD('SELECT A.CAMPO1 FROM TABLE1 A, TABLE2 B WHERE A.CAMPO NOT IN (SELECT DISTINCT(B.CAMPO) FROM TABLE2 B)');
ADOQUERY1.SQL.OPEN;

WHILE NOT ADOQUERY1.EOF DO
BEGIN
COMBOBOX1.ITEMS.ADD(ADOQUERY1.FIELDS[0].TEXT);
ADOQUERY1.NEXT;
END;

ramiro024
27-11-2012, 01:26:26
Bueno, respondo tarde pero mejor tarde que nunca, la verdad me sirvieron todas las sugerencias y la que priemro ocupe fue la de Faust, me sirvio para guiarme acerca de la sintaxis del select, mis conocimientos en delphi son muy basicos pero de a poco y buscando, ahora preguntado, me vasn saliendo las cosas, es como un hobbie ppor ahora, ojala alguna dia pueda hacer de laprogramacion algo serio, en fin, gracias y seguro voy a estar preguntando otras cosas, Gracias.-

Faust
27-11-2012, 16:10:04
Claro que si, por acá te podemos ayudan en lo que podamos ^\||/