|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
Bonjour, voila j'ai la requète suivante :
Code :
Par contre si je mets un ORDER BY PILCTRL.toto il plante donc le programme exécute bien le order by (enfin je pense!!) Quelqu'un saurait il pourquoi le tri ne se fait pas correctement? Merci |
||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 463 ![]() |
il me semble que la répétition du nom de ta base dans le order n'est pas utile et pour faire un order essaye que le nom de ton champ soit présent dans le select aussi
|
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
Merci d'avoir répondu, j'ai testé en rajoutant ORDER dans le select mais ca ne marche pas non plus. Je suis obligé de mettre PILCTRL.ORDER car sinon il me met un message d'erreur, comme s'il interpretait le nom de mon champ comme un order by et il me dit que j'ai une erreur de syntaxe vu qu'il manque le by
|
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 463 ![]() |
effectivement ORDER est un mot réservé donc erreur de code si ORDER BY ORDER
sinon désolé mais je ne vois pas pour ton problème normalement le tri doit se faire bon courage |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
OK ben merci quand même.
|
|
|
00
|
|
|
#6 | |||||||
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
J'ai trouvé d'où venait le problème mais je ne sais toujours pas le résoudre. En fait mon code est structuré comme cela :
J'ai simplifié mon code pour que ce soit plus lisible Code :
J'ai donc essayé de changer mon code en : Code :
Citation:
Code :
Merci |
|||||||
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 463 ![]() |
ben justement il me semble que c'est ma première réponse, quand tu utilises des trim, sum, distinct, le nom du champ doit se toruver dasn le select et dasn l'order comme ceci
select distinct(mon champ) from mabase where ma condition orderby mon champ asc |
|
|
00
|
|
|
#8 | |
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
Ben justement c'est ce que j'ai fais et ca ne fonctionne pas, il met met une erreur en disant que DISTINCT et ORDER BY sont incompatible
Citation:
|
|
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Inscription : mars 2004 Messages : 5 862 ![]() |
Salut,
|
|
00
|
|
|
#10 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 463 ![]() |
essaye ceci
il faut des () pour le distinct j'ai ajouté le asc pour préciser le sens du tri varSQL3 = "SELECT DISTINCT(GROUP) FROM PILCTRL WHERE PIL = 58918 ORDER BY PILCTRL.ORDER ASC" tiens nous au courant |
|
|
00
|
|
|
#11 | |
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
vva, J'ai essayé avec ta requète, j'obtien encore la meme erreur c'est à dire :
Citation:
En mettant GROUP entre crochet ou en mettant PILCTRL.GROUP, j'obtien encore la meme erreur. Comment ca on ne peut pas faire un distinct sur un champ texte?le champ GROUP est de type numérique, c'est le champ ORDER qui est de type texte, donc dans mon cas ca ne pose pas de souci je pense. Ce que tu appels concepteur de vue, c'est quoi? Genre dans access y'a une partie requète, et faire ma requète la dedans? Merci pour vos réponses |
|
|
|
00
|
|
|
#12 | |||
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
Je viens de tester sous Access, si je mets :
Code :
J'ai le meme message : Citation:
|
|||
|
|
00
|
|
|
#13 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 463 ![]() |
honnêtement essaye de modifier le nom de tes champs car order et group sont réservés donc sujet à confusion pour l'exécution de ta requête et pour la lecture
|
|
|
00
|
|
|
#14 | ||
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
Oui je comprend seulement j'utilise une base de données qui existe déjà, ce n'est pas moi qui l'ai créée et c'est vrai qu'elle est assez mal conçue, seulement je ne pas pas modifier les entêtes de colonne, de plus j'ai essayé avec d'autres champs exemple :
Code :
|
||
|
|
00
|
|
|
#15 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 463 ![]() |
regardes je viens de faire la même chose de mon côté
SELECT DISTINCT(SBUSRCRE), SBMNTECO FROM INTF1_COR.SE0000F GROUP BY SBUSRCRE, SBMNTECO ORDER BY SBUSRCRE ASC, SBMNTECO DESC et j'obtiens une liste groupée par utilisateur avec le montant pour chacun d'eux en ordre décroissant essayes de ton côté |
|
|
00
|
|
|
#16 | |||
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
Je viens d'essayer ceci :
Code :
Citation:
|
|||
|
|
00
|
|
|
#17 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 463 ![]() |
désolé mais je ne comprends pas bien pourquoi tu as besoin de ces deux SQL imbriqués, ne peux tu pas les fusionner ? ton problème vient peut être de là
|
|
|
00
|
|
|
#18 |
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
Heu ouè mais ca me demande un travail énorme car mon code et long (en meme temps je suis la pour ca). Par contre si je le fesais concrétement ca changerait quoi à mon problème?
Puisque le problème viens de la première requete si je fusionne les deux le problème sera toujours la.. |
|
|
00
|
|
|
#19 |
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
En refaisant des test, j'ai trouvé l'erreur, tu avais raison depuis le début c'est à cause du ORDER que tout plante!!
En mettant : Code :
varSQL3 = "SELECT DISTINCT(PILCTRL.GROUP), [PILCTRL.ORDER] FROM PILCTRL WHERE PIL = 58918 ORDER BY [PILCTRL.ORDER] ASC"
Code :
varSQL3 = "SELECT DISTINCT(PILCTRL.GROUP), PILCTRL.LIBELLE FROM PILCTRL WHERE PIL = 58918 ORDER BY PILCTRL.LIBELLE ASC"
Donc voilà l'erreur est isolé maintenant comment la résoudre : deux solutions - Modifier le nom du champ (étant donné que plusieurs applications tournent sur cette base il faudrait changer tous les programmes, je ne pense pas que ce soit faisable) - Au lieu d'utiliser le nom du champ utiliser un numéro. Par exemple dans une requete si je fais un si je fais rst(1) il va y avoir l'info de machin, cela est il possible dans le select? Genre écrire Bien sur il y aurait le cas mais je n'ai pas besoin de tous selectionner. |
|
|
00
|
|
|
#20 |
|
Nouveau Membre du Club
![]() Inscription : mars 2008 Messages : 154 ![]() |
J'ai vu dans les tuto de SQL qu'il fallait entouré de double quote, comme ma requète est déja entouré de double quote, si j'en remet erreur, j'ai essayé avec des simples quotes ca ne passe pas, les crochets comme me l'avait conseillé immobilis non plus
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com