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 30/12/2011, 21h53   #1
Invité de passage
 
Inscription : décembre 2011
Messages : 17
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 17
Points : 3
Points : 3
Par défaut Problème de SELECT imbriqués

Bonsoir,

J'ai une table CLIENTS où j'ai un identifiant client, une table BILLETS où se trouve le numéro d'un billet et l'identifiant client (qui l'a acheté), et une table RESULTAT où se trouvent les résultats des tirages au sort (c'est un nombre appelé valeur) et le gain en euros:

CLIENTS(id,nom,prenom)
BILLETS(id_billet,#id_client,#date)
RESULTAT(id_tirage,gain,date,valeur)
Cette BDD gère en fait le tirage (1 par jour) au sort de billets que des clients ont achetés.

Voilà mon problème:
J'aimerais savoir combien de billets ont achetés chacun des clients ayant gagné plus de 10€.

J'ai donc écrit la requête suivante:

Code :
1
2
3
4
5
6
7
8
9
SELECT CLIENTS.id,count(DISTINCT BILLETS.id_client) 
FROM CLIENTS, BILLETS, RESULTAT 
WHERE(
    SELECT sum(RESULTAT.gain) 
    FROM RESULTAT
) > 10 
AND BILLETS.valeur=RESULTAT.numeros 
AND BILLETS.date=RESULTAT.date 
GROUP BY id;
Sauf que le résultat que j'obtiens est complétement faux... A chaque client j'obtiens le même nombre...

En fait je ne sais pas comment faire pour que la somme des gains soit faite uniquement pour un seul client à chaque fois...

Je suis débutant en SQL, j'ai donc beaucoup de mal à expliquer mon problème...
N'hésitez pas à poser des questions si cela n'est pas très clair!

cloclo23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2011, 12h25   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 657
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 657
Points : 2 660
Points : 2 660
Bonjour,

Comment fait-on la relation entre un billet gagnant et un tirage ?

Je ne le vois pas modélisé dans votre schéma.
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2012, 21h09   #3
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 426
Points : 6 426
Bonjour,

Puisque vous débutez en SQL, profitez-en pour prendre tout de suite de bonnes habitudes, notamment dans l'écriture des jointures, avec une syntaxe normalisée.
Voici un excellent tutoriel pour vous aider : http://sqlpro.developpez.com/cours/sqlaz/jointures/
Ensuite, la solution à votre problème passe certainement par l'utilisation de la clause HAVING. Vous trouverez également des exemples ici : http://sqlpro.developpez.com/cours/sqlaz/ensembles/

Bon courage,

ced
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced 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 08h40.


 
 
 
 
Partenaires

Hébergement Web