Ver Mensaje Individual
  #8  
Antiguo 09-12-2011
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Reputación: 19
olbeup Va camino a la fama
Cita:
Empezado por Salnhack Ver Mensaje
Hola espero que me puedan ayudar

tengo 3 tablas, Mes(id_mes,descmes), Servicios(id_servicios, descservicios), Venta(id_venta,importev,id_servicios,id_mes).

necesito mostrar la descripcion de los servicio (descservicio) incluidos en la tabla venta de un mes en especifico

estoy haciendo esto
Código Delphi [-]
// Seleciono el id del mes selecionado en un comoboBox
     with DataModule4.Query1 do
      begin
       close;
       SQL.Clear;
       SQL.Add('Select (id_mes) from mes where descmes='+ QuotedStr(suiDBLookupComboBox2.Text));
       Open;
       mes:=FieldByName('id_mes').AsInteger;
      end;

//luego realizo al siguiente consulta que me selecciona la descripcion de los servicios 

 with DataModule4.Query3 do
      begin
       Close;
       SQL.Clear;
       SQL.Add('select (descservicios) from servicios where id_servicios=venta.id_servicios and venta.id_mes=:mes');
       ParamByName('mes').AsInteger:=mes;
       Open;
     end;

cuando la ejecuto me dice que faltan parametros

por favor si alguien me pudiera decir que estoy haciendo mal se lo agradeceria
tengo el query3 conectado a otro comboBox para que me liste los servicios
A parte de todas las respuestas de los compañeros, añado mi grano de arena.
Código Delphi [-]
with DataModule4.Query1 do
begin
  Close;
  SQL.Clear;
    SQL.Add('SELECT');
    SQL.Add('    S.DESCSERVICIOS');
    SQL.Add('  FROM Venta AS V');
    SQL.Add('    INNER JOIN Servicios AS S');
    SQL.Add('      ON S.ID_SERVICIOS = V.ID_SERVICIOS');
    SQL.Add('    INNER JOIN Mes AS M');
    SQL.Add('      ON M.ID_MES = V.ID_MES');
    SQL.Add('  WHERE M.DESCMES = ' + QuotedStr(suiDBLookupComboBox2.Text));
  Open;
end;
Cómo dice AziRain, es más rápido la ejecución de una consulta SQL utilizando números, aunque la consulta que te pongo es la misma que tienes al principio pero sólo en una consulta, aunque son más líneas también es más claro.

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita