hola a todos estoy tratando de hacer una consulta a varias tablas en access usando adoquery pero no me funciona me ignora el select disctinct ya que me arroja los datos repetidos, no se cual será el problema, este es el codigo que uso:
Código Delphi
[-]
datamodule2.ADOQueryrepresultados.Close;
datamodule2.ADOQueryrepresultados.SQL.Clear;
datamodule2.ADOQueryrepresultados.SQL.Add('Select DISTINCTROW detalles_resultados_emitidos.codigo_clasificacion,detalles_resultados_emitidos.codresultado,detalles _resultados_emitidos.codigo_subclasificacion,');
datamodule2.ADOQueryrepresultados.SQL.Add('resultados_emitidos.codresultado,resultados_emitidos.codr esultado2,resultados_emitidos.fecha_emision,');
datamodule2.ADOQueryrepresultados.SQL.Add('resultados_emitidos.cedula_paciente,resultados_emitidos.c odigo_convenio,resultados_emitidos.observaciones,resultados_emitidos.anulado,resultados_emitidos.imp reso,');
datamodule2.ADOQueryrepresultados.SQL.Add('pacientes.cedula,pacientes.nombres,pacientes.direccion,pa cientes.telefono,convenios.codigo,convenios.razon_social,convenios.rif,convenios.direccion,convenios .telefono');
datamodule2.ADOQueryrepresultados.SQL.Add('from resultados_emitidos,detalles_resultados_emitidos,pacientes,convenios');
datamodule2.ADOQueryrepresultados.SQL.Add('where resultados_emitidos.cedula_paciente=pacientes.cedula');
datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.codresultado = detalles_resultados_emitidos.codresultado');
datamodule2.ADOQueryrepresultados.SQL.Add('and detalles_resultados_emitidos.codresultado = resultados_emitidos.codresultado');
datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.codigo_convenio = convenios.codigo');
datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.fecha_emision >= :fecha1');
datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.fecha_emision <= :fecha2');
datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.impreso = :impreso');
datamodule2.ADOQueryrepresultados.SQL.Add('and detalles_resultados_emitidos.codigo_clasificacion = :codigo_clasificacion');
datamodule2.ADOQueryrepresultados.SQL.Add('and resultados_emitidos.anulado = :anulado');
codigo_clasificacion:=strtoint(dbecodigoclasificacion.text);
datamodule2.ADOQueryrepresultados.Parameters.ParamByName('fecha1').value := datetostr(represultadosemitidos.DateTimePicker1.Date);
datamodule2.ADOQueryrepresultados.Parameters.ParamByName('fecha2').value := datetostr(represultadosemitidos.DateTimePicker2.Date);
datamodule2.ADOQueryrepresultados.Parameters.ParamByName('impreso').value := impreso; datamodule2.ADOQueryrepresultados.Parameters.ParamByName('codigo_clasificacion').Value :=codigo_clasificacion;
datamodule2.ADOQueryrepresultados.Parameters.ParamByName('anulado').value := anulado; datamodule2.ADOQueryrepresultados.Open;
lo que quiero es hacer lo siguiente:
si en la tabla resultados_emitidos tengo:
codresultado paciente
1 17988645
2 15485655
y en la tabla detalles_resultados_emitidos tengo
codresultado codigo_clasificacioon codigo_subclasificacion
1 1 1
1 1 2
1 1 3
2 2 4
2 3 7
2 1 5
lo que necesito es saber el resultado_emitido donde contenga la clasificacion especificada en el parametro por ejemplo si le digo que me arroje los resultados con codigo_clasificacion=1 me dija:
codresultado paciente
1 17988645
2 15485655
si le digo que solo los de clasificacion=3
codresultado paciente
2 15485655
pero me bota varias veces el mismo resultado_emitido cuantas veces halla el codigo_clasificacion por ejemplo me los bota así si le digo clasificacion=1:
codresultado paciente
1 17988645
1 17988645
1 17988645
2 15485655
lo he intentado asi distinct(detalles_resultados_emitidos.codigo_clasificacion)
distinctrow(detalles_resultados_emitidos.codigo_clasificacion)
y de otras foarmas y nada, sigue igual, si alguien puede ayudarme a ver donde esta el problema se lo agradeceria.