Ma requête est basique et ressemble à ceci :
SELECT ID FROM Table WHERE CRIT1='a' AND CRIT2='b' AND CRIT3='c'
Cependant, il arrive qu'il ne renvoie aucune valeur. C'est normal car il n'y a pas de correspondance dans la table.
Pour aider mes utilisateurs à trouver quel critère est trop restrictif, je voudrais trouver une autre requête qui me dise si c'est à cause de la clause CRIT1, CRIT2 ou CRIT3 que je n'ai pas de réponse.
Actuellement, j'ai procédé de la manière suivante (en utilisant un pseudo-code) :
If ( SELECT ID FROM Table WHERE CRIT1='a' returns EOF )
Then WrongCriteria="CRIT1"
Elseif ( SELECT ID FROM Table WHERE CRIT1='a' AND CRIT2='b' returns EOF )
Then WrongCriteria="CRIT2"
Elseif ( SELECT ID FROM Table WHERE CRIT1='a' AND CRIT2='b' AND CRIT3='c' returns EOF )
Then WrongCriteria="CRIT3"
Cela fonctionne ... mais il y a plusieurs requêtes et chacune d'entre elles est très lente en raison du faible temps de réponse du réseau.
Ma question est la suivante : Est-il possible de réaliser le pseudo-code ci-dessus en une seule requête SQL ?