Ver Mensaje Individual
  #1  
Antiguo 24-10-2007
JESUSNET JESUSNET is offline
Miembro
 
Registrado: ago 2007
Posts: 29
Reputación: 0
JESUSNET Va por buen camino
problemas con select distinct en acces y adoquery

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('DISTINCTROW(detalles_resultados_emitidos.codresultado),de  talles_resultados_emitidos.codigo_clasificacion,detalles_resultados_emitidos.codigo_subclasificacion  ,');
   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;  //si
   datamodule2.ADOQueryrepresultados.Parameters.ParamByName('codigo_clasificacion').Value :=codigo_clasificacion;
   datamodule2.ADOQueryrepresultados.Parameters.ParamByName('anulado').value := anulado;//no
   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.
Responder Con Cita