Bonjour à tous,
J'ai un problème avec une requête sur lequelle j'ai trouver une solution mais je voudrais avoir votre avis pour être sur que ma solution tienne le coup.
J'ai une table
CHAINE_VALIDATEUR_CAS1 avec :
validateur_id | ordre | groupe_id | autoriser
1 1 2 1
2 2 2 1
3 3 2 1
Ce que je voudrais en faite c'est pour un groupe donnée et pour un validateur donnée trouver le premier validateur qui possède le groupe en question et qui est autorisé , je sais pas si c'est très clair mais par exemple : si je prend ma table plus haut j'ai :
validateur_id = 3 ordre = 3
validateur_id =2 ordre = 2
validateur_id = 1 ordre = 1
par exemple si je prend le validateur 3 et le groupe 2 je voudrais avoir le premier validateur qui possède ce groupe "autoriser = 1" mais qui est anterieur au niveau de l'ordre : exemple
validateur_id | ordre | groupe_id | autoriser
1 1 2 1
2 2 2 1
3 3 2 1
si je prend le validateur_id = 3 pour groupe_id = 2 alors je dois trouver comme résultat validateur_id = 2 car le validateur_id = 2 à l'ordre 2 donc juste en dessous de l'ordre 3 et le groupe 2 autoriser
si je prend ceci :
validateur_id | ordre | groupe_id | autoriser
1 1 2 1
2 2 2 0
3 3 2 1
alors pour le validateur_id = 3 pour groupe_id = 2 je dois trouver comme resultat validateur_id = 1.
Voila en faite la problématique est pas tellement compliqué,
Voici ma requête qui me permet de faire ceci :
String * requete = S"SELECT TOP 1
CHAINE_VALIDATEUR_CAS1.VALIDATEUR_ID FROM
CHAINE_VALIDATEUR_CAS1"
S"WHERE AUTORISATION_GROUPE.AUTORISER = 1 "
S"AND AUTORISATION_GROUPE.GROUPE_ID = 2 "// id du groupe
S"AND CHAINE_VALIDATEUR_CAS1.ORDRE < 3 " // ICI ON PREND L'ORDRE DU
VALIDATEUR pour le validateur 3 c'est ordre 3
S"ORDER BY CHAINE_VALIDATEUR_CAS1.ORDRE DESC" ;
Qu'en pensez vous ?
Par avance, merci.