Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3331 connectés 

 


Dernière réponse
Sujet : [SQL] Histoire de doublons...
Harkonnen N'empeche que j'avais raison :) si on n'utilise pas de fonctions d'agrégation, ça marche pas ! First et Last sont des fonctions d'agrégation  :)  
 
A+ et bravo à Mara  :hello:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Harkonnen N'empeche que j'avais raison :) si on n'utilise pas de fonctions d'agrégation, ça marche pas ! First et Last sont des fonctions d'agrégation  :)  
 
A+ et bravo à Mara  :hello:
Mara's dad De rien  ;)
heffer Bon boulot Mara's dad!
Voilà un forumeur comme je les aime! :)  
Merci quand même aux autres aussi!
Mara's dad Pour ceux qui sont éxactement 2 à la même adresse.
 
SELECT First(ad.nom) AS n1, First(ad.prénom) AS p1, Last(ad.nom) AS n2, Last(ad.prénom) AS p2, ad.adr, ad.ville FROM ad
GROUP BY ad.adr, ad.ville
HAVING (((Count(ad.nom))=2));
 
Pour ceux qui sont tout seul à une adresse :
 
SELECT First(ad.nom) AS PremierDenom, First(ad.prénom) AS PremierDeprénom, ad.adr, ad.ville
FROM ad
GROUP BY ad.adr, ad.ville
HAVING (((Count(ad.nom))=1));
 
Testé et approuvé sur MS-ACCESS 2000.
Krueger Ca marche pas sous Access? Dommage. :/
Harkonnen On ne peut pas :non:
 
Si tu n'utilises pas une fonction d'agrégation, tu n'auras aucun regroupement de fait et tu auras une erreur 3122 (sous Jet/Access)
Krueger Moi j'aurais utilisé une aggrégation pour obtenir pour chaque addresse Les personnes qui y vivent. Un truc du genre:
SELECT *
FROM my_table
GROUP BY address;
Harkonnen

heffer a écrit a écrit :

aratorn> ça veut dire que j'aurai un table pour chaque adress?! :??:  




 
Non, le mot clé DISTINCT te permet de ne renvoyer qu'une seule adresse :  
 
SELECT DISTINCT Adresse FROM Table => te renverra toutes les adresses qu'une seule fois, meme si elles sont présentes plusieurs fois

heffer Jupiler> Non car le format d'étiquettes ne sera pas le même si il y a plusieurs noms pour la même adresse. Donc il me faudrait: une table avec les personnes "seules" et une table avec les couples.
 
aratorn> ça veut dire que j'aurai un table pour chaque adress?! :??:
Aratorn Tu peux soit faire un groupe sur l'adresse et tu auras :
 
Adresse A
nom1
nom2
nom3
 
Adresse B
nom4
 
Adresse C
nom5
nom6
 
ou bien utiliser le mot clé Distinct
qui renvoie tous les enregistrements différents.
jupiler tu veux que la requete retourne aussi ceux qui sont seuls à leur adresse ?
heffer J'ai une table d'adhérents qui contient les champs suivants: Nom, Prénom, Adresse, Ville
Il se peut que deux adhérents habitent à la même adresse (par ex mari et femme).
Or je me sers de cette table pour éditer des étiquettes d'envelopppes et je veux éviter d'envoyer deux enveloppes à la même adresse.
Don il faut que je fasse une requête qui me permet d'obtenir la table suivante:
Nom1 Prénom1 Nom2 Prénom2 Adresse Ville
Où Nom1 et Nom2 sont les deux personnes habitant à la même adresse.
Malheureusement je ne maîtrise pas SQL, je fais donc appel à vous pour m'aider.  :)  
Merci!
 
PS: je travaille sous access2000

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)