
Hola! La verdad No se si te he logrado entender la consulta, pero entiendo que necesitas tener una especie de filtro y que puedas seleccionar registros en base a uno o varios campos segun el usuario lo desee. Bueno si es asi, tal vez te pueda servir este ejemplo:
Teniendo una ventana y combos por cada uno de los campos a filtrar, puedes poner un codigo como este:
Código Delphi
[-]
qGAnaAcuMst.close;
qGAnaAcuMst.SQL.Clear;
qGAnaAcuMst.sql.add('SELECT * FROM muestras WHERE FecInicial=:fecInicial AND FecFinal=:fecFinal ');
qGAnaAcuMst.paramByName('fecInicial').asDateTime := eFechaMin.Date;
qGAnaAcuMst.paramByName('fecFinal').asDateTime := eFechaMax.date;
if (trim(cbCosechas.text) <> 'Todas') and (Trim(cbCosechas.text)<>'')
then begin
qGAnaAcuMst.sql.add(' and Cosecha = :cosecha');
qGAnaAcuMst.paramByName('cosecha').asString := cbCosechas.text;
end;
if cbTipMuestra.text <> 'Todos'
then begin
qGAnaAcuMst.sql.add(' and SubProducto = :subproducto');
qGAnaAcuMst.paramByName('subproducto').asString := cbTipMuestra.text;
end;
qGAnaAcuMst.sql.add('group by Cosecha');
qGAnaAcuMst.open;
Espero que este codigo te ayude.
