[ASP] pb sur requète

pb sur requète [ASP] - Programmation

Marsh Posté le 12-09-2001 à 10:27:18    

Je ne comprends pas d'ou peut provenir l'erreur:
 
<%RsEtablis.Open "SELECT * FROM global, dpt WHERE global.dpt = dpt.dpt GROUP BY global.dpt ASC", Etablis%>
 
message d'erreur:

[Microsoft][ODBC Microsoft Access Driver] Erreur de syntaxe dans la clause GROUP BY.

Reply

Marsh Posté le 12-09-2001 à 10:27:18   

Reply

Marsh Posté le 12-09-2001 à 10:39:20    

ASC c'est pour le ORDER BY ... je comprends pas pkoi tu l'as mis dans le GROUP BY ??

Reply

Marsh Posté le 12-09-2001 à 10:45:44    

il est vrai que c'est une petite erreur de ma part.
Voici le message que le navigateur me renvoie lorsque je l'ai supprimé:
 
Impossible d'effectuer un regroupement sur les champs sélectionnés avec '*'.

Reply

Marsh Posté le 12-09-2001 à 10:50:53    

Maintenant c'est un probleme de sybtaxe SQL :)
essaye de faire des select sur les champs directement ... la g du boulot mais si tu as toujours erreur, je ferai un effort :)
 
Au fait, precise-moi les infos que tu veux recuperer, et les tables dans lesquelles elles sont ..

Reply

Marsh Posté le 12-09-2001 à 10:53:38    

C'est super sympa de ta part :)

Reply

Marsh Posté le 12-09-2001 à 11:02:47    

table1 "global":
*id
nom
dpt
 
table2: "dpt"
*dpt
nom_dpt
----------------------------------------
les * représentent les clef primaires.
----------------------------------------
Je voudrais pouvoir récupérer toutes les valeurs de ces deux table. Le probleme avec ma requete SQL c'est que lorsque je déclare les champs à la main, j'ai un message d'erreur :
Le champ spécifié 'dpt' peut désigner plusieurs tables listées dans la clause FROM de votre instruction SQL
Je ne sais vraiment plus quoi faire...
 
Merci pour ton aide

 

[edtdd]--Message édité par Djero--[/edtdd]

Reply

Marsh Posté le 12-09-2001 à 11:46:00    

J'ai modifié ma requete:
 
<%RsEtablis.Open "SELECT id, nom, global.dpt, dpt.dpt, nom_dpt FROM global, dpt WHERE global.dpt = dpt.dpt GROUP BY global.dpt", Etablis%>
 
J'ai donc identifié le dpt que je voulais pour le regroupement.
 
Nouveau message d'erreur:
 
Vous avez essayé d'exécuter une requête ne comprenant pas l'expression spécifiée 'id' comme une partie de la fonction d'agrégat.
 
Cela aurait il à voir avec les clefs primaire ?

 

[edtdd]--Message édité par Djero--[/edtdd]

Reply

Marsh Posté le 12-09-2001 à 16:52:29    

ok GROUP BY ne peut etre utilise avec *, il faut bien precise tout les champs a la main , de plus GROUP BY exige que tout les champs en sortis soient precise dans le GROUP BY donc:
 
SELECT id, nom, global.dpt, dpt.dpt, nom_dpt FROM global, dpt WHERE global.dpt = dpt.dpt GROUP BY id, nom, global.dpt, dpt.dpt, nom_dpt

Reply

Marsh Posté le 13-09-2001 à 08:39:37    

Merci :D

Reply

Marsh Posté le 13-09-2001 à 09:54:13    

Cela dit le GROUP BY n'a pas vraiment d'intérêt dans ce cas, puisque tu ne fais pas appel à des fonctions d'aggrégation dans ton SELECT (genre COUNT, SUM, MAX,...).
Si tu veux ne récupérer qu'un exemplaire de chaque ligne, utilise plutôt DISTINCT, et ORDER BY pour trier par nom par exemple.

Reply

Marsh Posté le 13-09-2001 à 09:54:13   

Reply

Marsh Posté le 13-09-2001 à 10:30:45    

Entièrement d'accord avec mon PB-friend ;)

Reply

Marsh Posté le 13-09-2001 à 10:32:36    

Fred999>  :hello: Ca tourne toujours PB ? :D
En ce moment on a des projets Java qui s'annoncent, ça va changer de PB ;)

Reply

Marsh Posté le 13-09-2001 à 16:47:14    

Ouaip, j'ai fait un écran, de la bombe de balle, le sapin de Noël de l'appli :D
 
Pareil, changement de mission et passage à Java bientôt!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed