IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Soucis de requêtes SUM()


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 64
    Points : 36
    Points
    36
    Par défaut Soucis de requêtes SUM()
    Bonsoir, je vous explique ma situation : Exemplaire_Jeu[id_exemplaire, #id_jeu; type_plateforme]
    Jeu[id_jeu, titre_jeu]
    Achat[id_achat, #id_exemplaire, prix_jeu]

    Je souhaite faire la somme du prix d'achat pour chaque exemplaire sachant qu'un exemplaire peut avoir le même nom et c'est en ça que je bloque. Car quand je lance ma requête, au lieu d'avoir deux lignes avec la somme des deux exemplaires, avec leur somme et seulement leur id_exemplaire qui est différent, j'ai une ligne avec la somme des prix, un seul des id_exemplaire et le titre du film.

    Par exemple, prenons l'exemplaire du jeu Call of duty avec comme id_exemplaire 1 et prix 40 type_plateforme = PS3
    Et un autre exemplaire Call of duty avec comme id_exemplaire 2 et prix 60 type_plateforme = PS4

    J'aimerais qu'il m'affiche sum(prix) = 40 id_exemplaire = 1 titre_jeu = Call of duty type_plateforme = PS3
    sum(prix) = 60 id_exemplaire = 2 titre_jeu = Call of duty type_plateforme = PS4
    sum(prix) = 40 id_exemplaire = 3 titre_jeu = Mario type_plateforme = Nintendo

    Et non sum(prix) = 100 id_exemplaire = 1 titre_jeu = Call of duty type_plateforme = PS3
    sum(prix) = 40 id_exemplaire = 3 titre_jeu = Mario type_plateforme = Nintendo

    Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     SELECT SUM(prix) , e1.id_exemplaire, jeu.titre_jeu
    FROM exemplaire_jeu e1, exemplaire_jeu e2, jeu, achat a1 , achat a2
    WHERE e1.id_exemplaire = a1.id_exemplaire
    AND e2.id_exemplaire = a2.id_exemplaire
    AND jeu.id_jeu = e1.id_jeu
    AND jeu.id_jeu = e2.id_jeu

    Merci de votre compréhension

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Je ne vois pas comment ta requête peut fonctionner, vu qu'il n'y a pas de GROUP BY.
    Je suppose qu'il s'agit de MySQL, vu que n'importe quel moteur sérieux aurait rejeté la requête, au lieu de renvoyer n'importe quoi...

    En écrivant correctement cette requête (et en respectant la norme SQL), le résultat sera celui attendu.

    Tatayo.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    Ma requête fonctionne, pour info, mais le résultat attendu n'est pas correct, car vu que le titre_jeu est identique, il me fait la somme par rapport au titre_jeu alors que ce n'est pas ce que je veux.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 64
    Points : 36
    Points
    36
    Par défaut
    Seulement j'aimerais faire la somme du prix pour chaque ligne d'exemplaire de jeu, même si le titre_jeu est identique sur deux lignes différentes.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    C'est bien ce que je dis : ta requête n'est pas correcte, mais au lieu de la rejeter, ton SGBD renvoie n'importe quoi.
    Fais un petit tour ici, et tu verras ce qu'il manque...

    Tatayo.

Discussions similaires

  1. Réponses: 18
    Dernier message: 06/10/2007, 18h03
  2. soucis de requéte
    Par mindar dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 25/07/2007, 17h44
  3. Soucis de requête (utilisation d'innor join :s)
    Par Il_TiRaNNo dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/05/2007, 19h31
  4. Réponses: 2
    Dernier message: 31/01/2007, 09h49
  5. requête sum complexe
    Par lebreton22 dans le forum Requêtes
    Réponses: 6
    Dernier message: 11/01/2007, 22h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo