pb sur requète [ASP] - Programmation
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 ??
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 '*'.
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 ..
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]
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]
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
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.
Marsh Posté le 13-09-2001 à 10:32:36
Fred999> Ca tourne toujours PB ?
En ce moment on a des projets Java qui s'annoncent, ça va changer de PB
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
Pareil, changement de mission et passage à Java bientôt!!!
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.