Cita:
Empezado por Salnhack
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 [-]
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;
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.