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 :

Demande aide requête


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 189
    Points : 80
    Points
    80
    Par défaut Demande aide requête
    Bonjour à tous,

    Je sèche pour la construction d'une requête.
    Voici la table
    IDFacture_détail int(11)
    IDFacture int(11)
    Version int(4)
    Montant float(9,2)
    Payé Bool(1)

    Exemple :
    IDFacture_détail | IDFacture | Version | Montant | Payé
    ______15___________1_________1______10______0
    ______11___________1_________2______11______1
    ______16___________1_________3______6_______0
    ______17___________2_________1______20______0
    ______20___________3_________1______10______0
    ______18___________3_________2______10______1


    Je cherche à obtenir le montant des factures payées, pour la dernière version de chaque facture.

    J'ai commencé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT SUM(A.Montant) AS Mont FROM Facture_détail AS A
    WHERE A.IDFacture_détail IN (
    	SELECT MAX(B.Version) AS Version, IDFacture_détail
    	FROM Facture_détail AS B 
            WHERE B.payés = 1
    	GROUP BY B.IDFacture
    )
    J'obtient le message :
    L'utilisation de fonctions agrégats avec d'autres rubriques ou fonctions non agrégat n'est pas autorisée sans l'utilisation d'une clause GROUP BY. Toutes les rubriques ou fonctions non agrégat doivent figurer dans la clause GROUP BY.

    Je sais que cela vient de "SELECT MAX(B.Version) AS Version, IDFacture_détail" qui n'est pas dans le group by ou associé à un max, avg ... Mais IDFacture_détail n'est pas incrémentiel

    Je ne voie pas comment contourner le problème.

    Merci par avance à ceux qui pourrait m'aider.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    bonjour

    essayez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT SUM(A.Montant) AS Mont 
    FROM Facture_détail AS A
    INNER JOIN (
    	SELECT IDFacture , MAX(B.Version) AS DeniereVersion
    	FROM Facture_détail AS B 
    	GROUP BY B.IDFacture
    ) T
      ON T.IDFacture = A.IDFacture
      AND T.DerniereVersion = A.Version
    WHERE A.payé = 1

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 189
    Points : 80
    Points
    80
    Par défaut
    Bon bah ca marche.
    Toujours surpris quand on teste et que ça marche, on se dit 'bah j'avais déjà essayé ca...'.

    Gros merci : simple, clair, net , efficace

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide sur une demande de requête au niveau de SQL Server
    Par Msysteme dans le forum Langage SQL
    Réponses: 1
    Dernier message: 08/04/2013, 23h01
  2. [MySQL] Demande aide optimisation requête SQL
    Par Dosix dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/07/2011, 09h13
  3. Demande aide requête combinée
    Par teuzadur dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 18/05/2011, 18h07
  4. Demande aide c++ et requêtes SQL
    Par juliette666 dans le forum C++
    Réponses: 3
    Dernier message: 17/05/2011, 23h35
  5. Demande aide sur requêtes SQL imbriquées
    Par pixworld2 dans le forum Requêtes
    Réponses: 5
    Dernier message: 24/12/2010, 16h23

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