Ver Mensaje Individual
  #12  
Antiguo 19-08-2014
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Reputación: 16
lmpadron Va por buen camino
Cita:
Empezado por Yugo Ver Mensaje
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

Código SQL [-]
SELECT * FROM table2

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_
________________________________________________________________________________
Responder Con Cita