OVH Cloud OVH Cloud

Question vicieuse : ORDER BY...

4 réponses
Avatar
Sébastien2003
Bonjour a tous,

Voila une question pour les pro :

Je souhaite faire une requete dans une base de données Acces (pas de soucis)
mais je souhaite que dans mon recordset les resultats soient ordonnés en
fonction d'une partie d'un champs texte. C'est à dire que parmis tous les
champs, il y en a un qui contient une chaine dans laquelle se trouve l'heure
de l'enregistrement (je sais il aurait ete plus indiqué de posseder un
champs Heure... pas bon!! c comme ca!!). Donc je voudrais faire quelque
chose du genre :

SELECT * FROM "MATABLE" WHERE "MES CONDITIONS" ORDER BY
Mid(MonChampsAvecL'heure, debut heure, longueur heure) ???

Sinon je vais etre oblige d'ajouter un champs "HEURE" et donc avoir une
redondance d'info et une base plus lourde

4 réponses

Avatar
Nicolas
Moi je te conseille de faire ça en 2 fois :

Une première requête dans laquelle tu extrais ton heure
avec un petit Mid, et une seconde basée sur la première
qui réordonne le tout, et voilà ! (en plus pas besoin de
convertir l'heure dans un autre format que texte)


Nicolas
Avatar
jmn
order by iif(instr(champheure,":")=0,"00:00", mid(champheure,
instr(champheure,":")-2,5))
Avatar
Sébastien2003
ca marche mais dans la doc VB6 ACCES c'etait pas tres tres clair !!!

Hasta lluego.
Sébastien
Avatar
Guy DETIENNE
Salut ;O)

A propos de redondance, avoir 2x la même info dans une DB ne veut pas dire
la ralentir. Certes, il y aura plus de données, mais l'accès pourrait être
plus rapide. Ce sont 2 choses bien différentes. Dans ton, effectuer un Mid
est bien plus lent que d'avoir un champ de type Date et d'effectuer un ordre
de tri selon ce dernier.

Guy

--
__________________________________
Tchao.net: L'informatique à votre dimension
www.tchao.net
Pour toute réponse, retirer le .nospam de l'adresse mail
ou cliquez ici http://cerbermail.com/?6nQ9U2fpkD

"Sébastien2003" a écrit dans le message de
news:bodsqe$6lp$
Bonjour a tous,

Voila une question pour les pro :

Je souhaite faire une requete dans une base de données Acces (pas de


soucis)
mais je souhaite que dans mon recordset les resultats soient ordonnés en
fonction d'une partie d'un champs texte. C'est à dire que parmis tous les
champs, il y en a un qui contient une chaine dans laquelle se trouve


l'heure
de l'enregistrement (je sais il aurait ete plus indiqué de posseder un
champs Heure... pas bon!! c comme ca!!). Donc je voudrais faire quelque
chose du genre :

SELECT * FROM "MATABLE" WHERE "MES CONDITIONS" ORDER BY
Mid(MonChampsAvecL'heure, debut heure, longueur heure) ???

Sinon je vais etre oblige d'ajouter un champs "HEURE" et donc avoir une
redondance d'info et une base plus lourde