Comment prévoir plusieurs possibilités de tri dans une requête
Voici comment étendre les possibilités de tri.
Bon travail !
N.B. Comme modèle de départ, j'ai choisi une requête toute simple, qui affiche les infos de base des lecteurs (localisation, groupe éventuel, nom, prénom, numéro de lecteur et sexe).
Je crois que vous pourrez facilement vous inspirer de ce modèle pour ajouter des options de tri dans d'autres requêtes.
En voici le code
SELECT location_libelle as Localisation,
libelle_groupe AS Groupe,
empr_nom as Nom, empr_prenom as 'Prénom',
empr_cb as 'Numéro',
(CASE empr_sexe WHEN '1' THEN 'M' WHEN '2' THEN 'F' ELSE ' ' END) as Sexe
FROM empr_caddie_content, docs_location, empr
LEFT JOIN empr_groupe ON empr_id = id_empr
LEFT JOIN groupe ON groupe_id = id_groupe
WHERE empr_location = idlocation
GROUP BY empr_cb
ORDER BY location_libelle,
(CASE (!!choix!!)
WHEN '1' THEN CONCAT(libelle_groupe,' ', empr_nom, ' ', empr_prenom)
WHEN '2' THEN CONCAT(empr_nom, ' ', empr_prenom)
WHEN '3' THEN empr_cb ELSE '' END)
libelle_groupe AS Groupe,
empr_nom as Nom, empr_prenom as 'Prénom',
empr_cb as 'Numéro',
(CASE empr_sexe WHEN '1' THEN 'M' WHEN '2' THEN 'F' ELSE ' ' END) as Sexe
FROM empr_caddie_content, docs_location, empr
LEFT JOIN empr_groupe ON empr_id = id_empr
LEFT JOIN groupe ON groupe_id = id_groupe
WHERE empr_location = idlocation
GROUP BY empr_cb
ORDER BY location_libelle,
(CASE (!!choix!!)
WHEN '1' THEN CONCAT(libelle_groupe,' ', empr_nom, ' ', empr_prenom)
WHEN '2' THEN CONCAT(empr_nom, ' ', empr_prenom)
WHEN '3' THEN empr_cb ELSE '' END)
Le tri se fait d'abord sur la localisation (quel que soit l'autre critère choisi), ensuite
Choix 1 : sur une concaténation du nom du groupe éventuel + nom et prénom du lecteur
(La liste affichera donc d'abord les emprunteurs qui ne sont liés à aucun groupe, ensuite les membres des groupes)
Choix 2 : sur une concaténation du nom et du prénom du lecteur
Choix 3 : sur le numéro de lecteur
Configurer les paramètres de la requête
Anne-Marie Cubat
Requête en ISO et en UTF-8
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
(CASE (!!choix!!)
WHEN '1' THEN CONCAT(libelle_groupe,' ', empr_nom, ' ', empr_prenom)
WHEN '2' THEN CONCAT(empr_nom, ' ', empr_prenom)
WHEN '3' THEN empr_cb
(CASE (!!choix!!)
WHEN '1' THEN CONCAT(libelle_groupe,' ', empr_nom, ' ', empr_prenom)
WHEN '2' THEN CONCAT(empr_nom, ' ', empr_prenom)
ELSE '' END)
ASC,
(CASE (!!choix!!)
WHEN '3' THEN empr_cb
ELSE '' END)
DESC
(CASE (!!choix!!)
WHEN '1' THEN CONCAT(libelle_groupe,' ', empr_nom, ' ', empr_prenom)
WHEN '2' THEN CONCAT(empr_nom, ' ', empr_prenom)
ELSE '' END),
(CASE (!!choix!!)
WHEN '3' THEN empr_cb
ELSE '' END)
DESC
LEFT JOIN empr_groupe ON empr_id = id_empr
LEFT JOIN groupe ON groupe_id = id_groupe
LEFT JOIN empr_groupe ON empr_id = id_empr
LEFT JOIN groupe ON groupe_id = id_groupe