Solamente voy a lanzar una idea, si te gusta la desarrollas y nos dices si funciona.
1.- Con una estructura de tipo Case.
evaluamos que condiciones contienen algo, por lo tanto ya sabremos cual no tenemos que añadir al SQL que pensamos armar.
2.- Hago tantos consultas como Condiciones puso el usuario, es decir si dejo en blanco una de cuatro, construyo 3 Consultas SQL.
Lanzo la primera sino devuelve nada, la marco como no válida puesto que no hay nada que responda a la preguntado
Con esto me quedo solamente con las que devuelven datos, supongamos que son tres.
luego quedaría combinarlas entre sí es decir
MiVariableTexto:=Sql1+Sql2
abro esta consulta, si devuelve algo, la combino con la 3, de esta manera, me aseguro que solamente trabajo con las preguntas que siempre devuelven registros, y en la segunda fase, las combino al máximo, es decir si las 3 combinadas devuelve algo, ya lo tengo, sino tendría que combinar 1 a 1 y quedarme o bien con la que más registros devuelva si las dos me dan resultados o con la que devuelva algo, si es que una sola combinación funciona.
Un Saludo.
|