Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/07/2011, 11h50   #1
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 6
Points : 2
Points : 2
Par défaut au moins un de chaque parmi

bonjour,
je me permet de vous poster mon probleme car je n'ai pas réussi à trouver mon bonheur syr d'autre poste

voici ma table parc_machine en simplifiée
un client peut possède plusieurs de nos machines, et peut en avoir deux fois la meme

client | type_machine | date_achat | num_serie | ...

je cherche le moyen d'avoir les client qui ont au moins la machine a et la machine b dans leur parc...

je suis partie sur un truc style

Code :
SELECT client FROM parc WHERE type_machine IN ('machine_a' , 'machine_b') GROUP BY client HAVING count(client) >=2
ça marche sauf que je récupere aussi les client qui ont deux fois la machine_b par exemple.
je pense pas etre loin mais j'ai plus d'idées
par avance merci
xelha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 11h55   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 638
Points : 2 630
Points : 2 630
bonjour,

Oui effectivement vous n'êtes pas loin de la solution :

Code :
1
2
3
4
5
6
 
SELECT client 
FROM parc 
WHERE type_machine IN ('machine_a' , 'machine_b') 
GROUP BY client 
HAVING count(DISTINCT type_machine) = 2
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 11h55   #3
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 085
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 085
Points : 1 883
Points : 1 883
Bonjour,
et si tu fais une jointure de la table sur elle-même, un peu comme ceci:
Code SQL :
1
2
3
4
5
 
SELECT DISTINCT p1.client
FROM parc p1
INNER JOIN parc p2 ON p1.client = p2.client AND p2.type_machine = 'type2'
WHERE p1.machine = 'type1'

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 15h23   #4
Invité de passage
 
Homme
Inscription : juin 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : juin 2011
Messages : 6
Points : 2
Points : 2
je crois que je suis maudit...
j'ai oublé de préciser que j'utilise (c'est pas qui ait choisit) MS access
il ne ère pas le count(distinct)

mais il y a pas mal d'autre post qui en parle,
j'espère trouver...
xelha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 15h40   #5
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 445
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 445
Points : 7 532
Points : 7 532
La requête de tatayo répond à ton besoin, et sans COUNT(DISTINCT ...)
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h40.


 
 
 
 
Partenaires

Hébergement Web