Bonjour à tou(te)s,
J'aurai une question : comment fait-on pour trier son résultat de requête SQL, en plaçant certaines rangées (rows) en première position ?
Exemple : Une base de données factures.
Chaque facture a un statut de règlement représentée par une colonne "statut" dans ma table avec diverses valeurs possibles : payée, en attente, en retard...
Je voudrais que mon order by, soit non seulement basé sur l'id, mais aussi que le tri s'effectue de manière à placer les "EN RETARD" en première position de rangées (elles-mêmes classées par id).
C'est possible vous croyez ?
Merci de votre aide :)
Salut,
Bien sûr que c'est possible :D
d'ailleurs, à coeur vaillant, rien d'impossible :D :D
tu as la réponse ici
@pluche
Pierre
Merci de ta réponse.
Hélas ca marche pas.
Ai-je fait une erreur ?
$querystr = "SELECT *
CASE
WHEN statut = RETARD THEN 2
WHEN statut = EN_ATTENTE THEN 1
WHEN statut = REGLEE THEN 0
END AS ordretri
FROM factures
LEFT JOIN clients ON (factures.client_id = clients.client_id)
ORDER BY ordretri DESC";
$results = $wpdb->get_results( $querystr , OBJECT );
Ca marchait avant que je ne modifie le code.
Et là, je n'ai plus rien qui s'affiche.
status est une string ?
dans ce cas WHEN statut = 'RETARD' THEN 2
@pluche
Pierre
*edit : regarde un peu ta reque !!!!!! select case ................ normal que rien ne fonctionne ;)**
Je t'avoue ne pas avoir compris ton "edit", et j'ai toujours rien qui s'affiche malgré avoir mis les apostrophe sur les valeurs de "statut" (qui est un string en effet)
:(
il faut faire select champ1, champ2,champ......................
toi, tu fais select *case ..................
donc, y a obigatoirement une erreur de saint Axes :D dans la requète.
essaye de mettre une virgule après *
@plus
Pierre
En fait je voulais prendre en compte tous les champs, et pas juste qq uns séparés par des virgules.
C'est pas possible ?
tu fais comme tu veux mon grand :D
enfin, si tu veux que ça fonctionne, vaut mieux bien faire ;)
@pluche
Pierre