cs_LABAUDE
Messages postés15Date d'inscriptionsamedi 19 juillet 2003StatutMembreDernière intervention 4 janvier 2006
-
16 sept. 2005 à 10:03
Khenat375
Messages postés20Date d'inscriptionvendredi 23 mai 2008StatutMembreDernière intervention 3 novembre 2011
-
10 juin 2008 à 16:02
Bonjour,
L'affichage de la requete ce dessous ne me convient pas. En effet, j'ai des doublons. La raison est simple dictionary_keywords.id est une clé unique. J'ai besoin de récupérer cette clé pour une utilisation ultérieur. Je souhaiterai appliquer le select distinct uniquement sur dictionary_keywords.label_fr Quelqu'un pourrai il m'aider. Je n'ai plus d'idée? Je ne trouve pas de solution et ma base est une base access. Merci a vous.
Voici la requete :
SQLkeywords "SELECT DISTINCT (dictionary_keywords.label_fr), dictionary_concepts.id_indices, dictionary_keywords.id FROM dictionary_keywords INNER JOIN dictionary_concepts ON dictionary_keywords.id_concepts dictionary_concepts.id WHERE left(dictionary_keywords.label_fr,1)='"& u_letter &"' AND (((dictionary_concepts.id_indices)=1)) ORDER BY dictionary_keywords.label_fr;"
cs_LABAUDE
Messages postés15Date d'inscriptionsamedi 19 juillet 2003StatutMembreDernière intervention 4 janvier 2006 16 sept. 2005 à 17:26
Merci pour le conseil. J'ai déposé le message suivant car j'ai avancé dans mes recherches et je ne comprends pas... Voici mon message
Impossible de convertir la requete suivante fonctionnant avec phpmyadmin en requete pour un site en asp et une base access. Pouvez vous m'aider?
SELECT DISTINCT (
dictionary_keywords.label_fr
), dictionary_concepts.id_indices, dictionary_keywords.id
FROM dictionary_keywords
INNER JOIN dictionary_concepts ON dictionary_keywords.id_concepts = dictionary_concepts.id
WHERE left( dictionary_keywords.label_fr, 1 ) = 'A' AND (
(
(
dictionary_concepts.id_indices
) = 1
)
)
GROUP BY dictionary_keywords.label_fr
ORDER BY dictionary_keywords.label_fr LIMIT 0 , 30
Dans ma page asp, j'ai écrit :
SELECT DISTINCT (dictionary_keywords.label_fr), dictionary_concepts.id_indices, dictionary_keywords.id FROM dictionary_keywords INNER JOIN dictionary_concepts ON dictionary_keywords.id_concepts = dictionary_concepts.id WHERE left(dictionary_keywords.label_fr,1)='A' AND (((dictionary_concepts.id_indices)=1)) GROUP BY dictionary_keywords.label_fr ORDER BY dictionary_keywords.label_fr;
J'obtiens le message d'erreur suivant :
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][Pilote ODBC Microsoft Access] Vous avez essayé d'exécuter une requête ne comprenant pas l'expression spécifiée 'id_indices' comme une partie de la fonction d'agrégat.
Lorsque je lance cette requete dans access, j'ai le message d'erreur suivant :
Vous avez essayé d'exécuter une requête ne comprenant pas l'expression spécifiée <nom> comme une partie de la fonction d'agrégat. (Erreur 3122)
Merci pour votre aide et j'espere qu'il y a une solution...
cs_LABAUDE
Messages postés15Date d'inscriptionsamedi 19 juillet 2003StatutMembreDernière intervention 4 janvier 2006 19 sept. 2005 à 09:24
J'ai suivis tes conseils et j'ai aussi déposé ma question à l'adresse suivante : SQLFr.com
De retour ce matin, je suis désespéré car aucune réponse sur aucun forum.
Aurai tu une autre piste?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Kirdream
Messages postés5Date d'inscriptiondimanche 7 novembre 2004StatutMembreDernière intervention19 janvier 2009 14 juin 2007 à 10:22
J'ai aussi un problème lors d'une requete SELECT DISTINCT dans une base Access. Il indique que l'on ne peut appliquer un DISTINCT s'il y a des doublons dans la table (pour ma part, je voulais faire un SELECT sur le champ NOM)
J'ai trouvé la solution en me basant sur la requete de Moustachu.
Ce qu'il faut retenir c'est le :
" Groupby Ch1,Ch2,Ch3 Havingcount(*) > 1 "
Ensuite, il suffit de le modifier en "Havingcount(*) >= 1" et Voila.
Ca donne, en ce qui me concerne :
"SELECT nom
FROM personne
GROUP BY nom Having count(*) >= 1
ORDER BY Asc; "
Il faut savoir que le DISTINCT d'Access ne fonctionne pas de la même façon que dans le vrai SQL officiel.