Ver Mensaje Individual
  #1  
Antiguo 04-05-2017
netcom netcom is offline
Miembro
NULL
 
Registrado: nov 2014
Posts: 11
Reputación: 0
netcom Va por buen camino
Sentencia SQL simultanea en dos tablas

Buenas chicos,

La siquiente pregunta esta relacionada con SQl en Delphi XE2. La base de datos con la que trabajo es de ACCES, con TADO.

Tengo la siguiente consulta que funciona a la perfección:
Código Delphi [-]
With Datamodule1.ADOQuery_consultasFlujo Do
            Begin
              Close;
              SQL.Clear;
              SQL.Add('SELECT * FROM Entradas_Salidas_ECS WHERE tipo_de_entrada =:condicion1 ');
              SQL.Add('and tipo_de_salida =:condicion2 and nombre =:condicion3 ');
              SQL.Add('and Fecha_salida BETWEEN :condicion4 and :condicion5 ');
              SQL.Add('and Fecha_recepcion BETWEEN :condicion6 and :condicion7');
              Parameters.ParamByName('condicion1').Value:=RG_Entradas.Items.strings[RG_Entradas.ItemIndex];
              Parameters.ParamByName('condicion2').Value:=RG_Salidas.Items.strings[RG_Salidas.ItemIndex];
              Parameters.ParamByName('condicion3').Value:=E_Empresa.text;
              Parameters.ParamByName('condicion4').Value:=E_Entrada_Inicio.Text;
              Parameters.ParamByName('condicion5').Value:=E_Entrada_Fin.Text;
              Parameters.ParamByName('condicion6').Value:=E_Salida_Inicio.Text;
              Parameters.ParamByName('condicion7').Value:=E_Salida_Fin.Text;
             Open;
            End;

Ahora querría que la consulta se hiciera de forma simultánea en dos tablas, la tabla Entradas_Salidas_ECS y la tabla Entradas_Salidas_BEA, (ambas tablas tienen la misma estructura). He probado algo así:

Código Delphi [-]
With Datamodule1.ADOQuery_consultasFlujo Do
            Begin
              Close;
              SQL.Clear;
              SQL.Add('SELECT * FROM Entradas_Salidas_ECS, Entradas_Salidas_BEA  WHERE tipo_de_entrada =:condicion1 ');
              SQL.Add('and tipo_de_salida =:condicion2 and nombre =:condicion3 ');
              SQL.Add('and Fecha_salida BETWEEN :condicion4 and :condicion5 ');
              SQL.Add('and Fecha_recepcion BETWEEN :condicion6 and :condicion7');
              Parameters.ParamByName('condicion1').Value:=RG_Entradas.Items.strings[RG_Entradas.ItemIndex];
              Parameters.ParamByName('condicion2').Value:=RG_Salidas.Items.strings[RG_Salidas.ItemIndex];
              Parameters.ParamByName('condicion3').Value:=E_Empresa.text;
              Parameters.ParamByName('condicion4').Value:=E_Entrada_Inicio.Text;
              Parameters.ParamByName('condicion5').Value:=E_Entrada_Fin.Text;
              Parameters.ParamByName('condicion6').Value:=E_Salida_Inicio.Text;
              Parameters.ParamByName('condicion7').Value:=E_Salida_Fin.Text;
             Open;
            End;

Pero no funciona, al ejecutar la sentencia me salta el siguiente error: "Objeto Parameter mal definido. Se proporcionó información incompleta o incoherente".
Buscando por el foro he visto los comandos JOIN ON, LEFT JOIN pero me salta el mismo error.

Tenéis idea de como debería ser la estructura correcta de la sentencia para que el SQL me devolviera los resultados encontrados en ambas tablas?

Muchas Gracias!
Responder Con Cita