SQL -> Ordre inversé a cause des TRI -> HELP !!!!!

cs_globule Messages postés 327 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 6 octobre 2010 - 13 oct. 2005 à 11:23
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 13 oct. 2005 à 14:08
Bonjour

J'ai une requete qui affiche 3 champ
Nom
Code
Ordre

Si je rajoute un tri dans ma requete (access, VB, ADO) sur le champ ordre alors que ce champ est vide la requete est renvoyé dans l'ordre inverse ! Ce que je ne veux pas car c'est une application utilisée par plusieurs centaines d'utilisateurs et cela aura un effet catastrophique. Comment me sortir de ce probleme ? (sans faire une moulinette sur les bases)

A noter que c'est la même chose si on rajoute un champ date avec des dates identiques : Si on tri sur le champ l'ordre est inversé, si on ne tri pas l'ordre et celui de l'archivage dans la base

10 réponses

acecel Messages postés 140 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 14 octobre 2006
13 oct. 2005 à 11:27
Quelle est ta requête?
0
cs_globule Messages postés 327 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 6 octobre 2010
13 oct. 2005 à 11:44
A l'origine c'etait

select * from MATABLE where CODE =" & code

Maintenant c'est

select * from MATABLE where CODE =" & code & " order by ORDRE"

La 2eme requete est systematiquement renvoyé dans le sens inverse, même si le champ ordre ne contient aucune valeur (Alors que logiquement ca devrait etre l'ordre d'archivage dans la base)

Idem, si vous faites un tri sur un champ date identique, c'est retrourné dans le sens inverse
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
13 oct. 2005 à 11:45
rajoute un champ numéroauto dans ta base

Comme ça tu pourras faire un tri correcte à partir de ce champ.

Si tu n'as rien dans ordre, comment veux-tu qu'il fasse un tri à partir de ce champ?




TBBUIM
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
13 oct. 2005 à 11:51
En rajoutant un champ numéroauto dans ta base, toutes les lignes seront automatiquement chiffrées dans l'ordre où elles sont.

Comme ça à chaque nouvelle entrée, correspondra un nouveau numéro qui
s'incrémentera au fur et à mesure de l'ordre d'entrée de tes données
dans la base.

De ce fait, l'ordre sera conservé, pas besoin de date, ni de champ ordre...

Si tu veux toutefois faire par date, rajoute l'heure 13/10/05 11:46.

Ca évite d'avoir 2 dates identiques, il est plus difficile d'avoir 2 heures identiques...

Mais bon, je recommande fortement le numéroauto dans ton cas.

"C'est facile, c 'est pas cher, et ça peut rapporter gros!"
TBBUIM
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
13 oct. 2005 à 11:55
salut

effectivement, si tu veux etre sur d'avoir tes lignes dans un ordre precis, il vaut mieux prevoir ou il y a quelque chose a coup sur.

pourquoi ne fais tu pas un classement sur le nom sinon. ou meme sur les deux :

ORDER BY ordre, nom

comme ca tu as en premier les enregistement pour lesquels ordre est renseigné, et ensuite les autres dans l'ordre alphabetique
0
acecel Messages postés 140 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 14 octobre 2006
13 oct. 2005 à 11:55
Tes 3 champs sont au quel format?

ca par exemple ca ne va pas mieux? :

select * from MATABLE where CODE =" & code & " order by ORDRE, CODE"
0
acecel Messages postés 140 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 14 octobre 2006
13 oct. 2005 à 12:08
En fait j'avais pas bien compris, comme l'on dit 55855 tbbuim1 et =35535 aieeeuuuuu il te faut un index (un NuméroAuto ou un Numero dont tu gère l'incrémentation toi même)
0
cs_globule Messages postés 327 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 6 octobre 2010
13 oct. 2005 à 12:37
L'ajout d'un index en num auto ne m'aide pas beaucoup
Car effectivement ca fonctionne, mais si je rempli un champ ORDRE avec une valeur (et pas les autres), le reste des valeurs va être à nouveau inversé

select * from MATABLE where CODE =" & code & " order by ORDRE,CLE"
-> Fonctionne si ordre est vide
-> Si je rajoute une valeur dans ordre tous sera décalé
0
cs_globule Messages postés 327 Date d'inscription mardi 8 octobre 2002 Statut Membre Dernière intervention 6 octobre 2010
13 oct. 2005 à 14:01
Ca fonctionne, c'est une erreur de ma part

Merci
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
13 oct. 2005 à 14:08
Merci de cocher "réponse acceptée" please...
TBBUIM
0
Rejoignez-nous