Cita:
Empezado por Yugo
PD2: No os podeis imaginar lo agradecido que se siente uno cuando hay personas como vosotros que se toman la molestia y gastan su tiempo en ayudar a los que lo necesitamos, muchas gracias.
|
No estamos gastando nuestro tiempo... estamos pagando el tiempo que otros gastaron en ayudarnos a nosotros !!!
... al menos eso es lo que hago yo hehehe ... incluyendo todo el que se gasto
ecfisa conmigo
hehehehhee !!!
A ver si esto te sirve .. pon un
DBGRID con su
DataSource y apuntalo a un
Query (Query1) con este SQL
Una ves hecho esto en el DBGrid1 debes ver todos los valores de la
"tabla 2", ahora si entiendo bien quieres comprobar los valores que están en los campos desde el
ID1 RE1 hasta el
ID13 RE13 con los contenidos en la
"tabla 1" en los campos
ID1 RE1.
Para esto pon otro
DBGrid con su
DataSource apuntando a un segundo
Query (Query2). En el DataSource1 en su evento
DataChange pones lo siguiente
Código:
void __fastcall TForm1::DataSource1DataChange(TObject *Sender,TField *Field)
{
Query2->Close();
Query2->SQL->Clear();
Query2->SQL->Add("SELECT "
"(SELECT nombre FROM tabla1 WHERE ID1 IN (SELECT ID1 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') AND RE1 IN (SELECT RE1 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') ORDER BY nombre ASC) AS PAR_ID1RE1, "
"(SELECT nombre FROM tabla1 WHERE ID1 IN (SELECT ID2 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') AND RE1 IN (SELECT RE2 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') ORDER BY nombre ASC) AS PAR_ID2RE2, "
"(SELECT nombre FROM tabla1 WHERE ID1 IN (SELECT ID3 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') AND RE1 IN (SELECT RE3 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') ORDER BY nombre ASC) AS PAR_ID3RE3, "
"(SELECT nombre FROM tabla1 WHERE ID1 IN (SELECT ID4 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') AND RE1 IN (SELECT RE4 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') ORDER BY nombre ASC) AS PAR_ID4RE4, "
"(SELECT nombre FROM tabla1 WHERE ID1 IN (SELECT ID5 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') AND RE1 IN (SELECT RE5 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') ORDER BY nombre ASC) AS PAR_ID5RE5, "
"(SELECT nombre FROM tabla1 WHERE ID1 IN (SELECT ID6 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') AND RE1 IN (SELECT RE6 FROM table2 WHERE ID = '"Query1->FieldByName("id")->Text"') ORDER BY nombre ASC) AS PAR_ID6RE6; "
);
Query2->Open();
}
Es mas menos lo inverso a lo que te propuso
ecfisa, según recorras la tabla 2 se efectuará la comprobación de los primeros 6 pares (no seguí mas allá por razones obvias !!!), si para esos primeros 6 pares funciona, pues entonces va a funcionar para todos !!!
Cada columna lleva como nombre el numero del par que analiza y en caso de encontrar resultados solo te mostrara el campo
nombre.
Saludos
__________________
Nunca esta de más volver a ver la
"Guia de Estilo" o
"La Otra Guia de Estilo". Recuerda siempre usar los
"Tags" para una mejor legibilidad de tu código.
Cuando miras fijamente al abismo, este te devuelve la mirada
oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________