Requete SQL SELECT DISTINCT doublon

cs_LABAUDE
Messages postés
15
Date d'inscription
samedi 19 juillet 2003
Statut
Membre
Dernière intervention
4 janvier 2006
- 16 sept. 2005 à 10:03
Khenat375
Messages postés
20
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Derniè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;"

6 réponses

cs_Nurgle
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
28 avril 2011
3
16 sept. 2005 à 17:12
Salut,



Je te conseille d'aller poser cette question sur SQLFr.com, le site CodeS-SourceS dédié au SQL !


A++

Nurgle
0
cs_LABAUDE
Messages postés
15
Date d'inscription
samedi 19 juillet 2003
Statut
Membre
Derniè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...
0
cs_Nurgle
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
28 avril 2011
3
16 sept. 2005 à 17:33
Tu n'as pas déjà posté cette question autre part ?

Du genre ici : Relevez le défi...



D'ailleurs j'y ais donné la même réponse : SQLFr.com !!

(je dirais pas qu'ici on est nul en SQL, mais là-bas il y a plus de chance qu'on réponde à ta question )



A++

Nurgle
Il est plus aisé d'être sage pour les autres que pour soi-même ! (La Rochefoucauld)
0
cs_LABAUDE
Messages postés
15
Date d'inscription
samedi 19 juillet 2003
Statut
Membre
Derniè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?
0

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

Posez votre question
Kirdream
Messages postés
5
Date d'inscription
dimanche 7 novembre 2004
Statut
Membre
Dernière intervention
19 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.
0
Khenat375
Messages postés
20
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
3 novembre 2011

10 juin 2008 à 16:02
Je tiens à remercier cette session questions-réponses où j'ai trouvé ce que je cherchais.
Khenat
0