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 :

[SQL] deux count dans une requette


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 22
    Par défaut [SQL] deux count dans une requette
    tout d'abord bonjour
    Voici la partie de la base de donnée qui nous intéresse (sgbd: MySQL):



    Remarquez que article référence produit et stock référence lui aussi produit.

    J'aimerais pouvoir récupérer pour une ordonnance, l'id des produits, la quantité DEMANDE pour chaque produit, la quantité DISPONIBLE pour chaque produit (=quantité totale en stock - stock_promis)...
    Le but est donc de réunir pour chaque produits le nombre de références de la table article ainsi que le nombre de référence de la table stock.

    Mon problème c'est que lorsque je fait un COUNT + GROUP BY je peut avoir soit la quantité disponible, soit la quantité demandée.
    En espérant que quelqu'un puisse m'aider...

  2. #2
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 9
    Par défaut
    Bonjour,

    Pour ma part, je n'ai jamais vu de requêtes avec 2 counts à moins de faire une union mais je ne pense pas que ce soit ce que tu veux. Le count étant lié au group by je ne vois pas comment tu pourrais faire :s

    Je n'ai pas vu les attributs de quantite totale, ...

    Peux-tu poster ta requête actuelle ? (Ca pourrait m'aider )

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Par défaut
    Bonjour,

    Le plus simple est d'utiliser des sous-requêtes (fonctionnailité disponible depuis la 4.1)

    Une sous-requête ramenant le nombre de références de la table article, l'autre ramenant le nombre de référence de la table stock.
    Le select principal travaille sur ces sous-requêtes au lei de travailler directement sur les tables.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 22
    Par défaut
    Coldyo:
    si tu veut ma requête serais du genre

    SELECT idproduit, count(s.idproduit) as qte_demande, (count(a.idproduit) - stock_dispo) as qte_dispo
    FROM ((article a NATURAL JOIN produit p) NATURAL JOIN stock s
    GROUP BY idproduit;

    Mais c'est faux et cela ne marche pas. Après créer un autre champs dans la table produit ne m'enchante guère. Pour moi la quantité totale représente le nombre de d'entrée dans la table stock qui référence un produit. Donc la quantité disponible est égale a cette quantité total moins la valeur du champs stock_promis.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 22
    Par défaut
    billharry:
    je vais creusé du coté des sous-requêtes et je vous tient au courant.
    J'avais tenté sans succès, au passage si tu a des exemples a me donner je suis preneur!!

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Par défaut
    Voici la doc correspondante :
    http://dev.mysql.com/doc/refman/5.0/...med-views.html

    Peux-tu me donner les requêtes correpondant à :
    1) récupérer pour une ordonnance, l'id des produits, la quantité DEMANDE pour chaque produit
    2) récupérer la quantité DISPONIBLE pour chaque produit (=quantité totale en stock - stock_promis) (je ne vois pas bien le calcul à faire)

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 22
    Par défaut
    billharry:
    d'après ce que j'ai pu comprendre sur les sous-requêtes, elle s'utilise avec la clause WHERE, donc en d'autre terme (arrête mois si je me trompe) elle permettent d'affiner le résultat d'une requêtes avec le résultat d'une autre requête... Si tel est le cas, cela ne m'avance guère.

  8. #8
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    J'ai posté une solution à essayer qui ressemble à ton problème dans cette autre discussion.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. Deux COUNT dans une seule requête
    Par aya02 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/07/2010, 10h17
  2. [Oracle] Deux COUNT dans une seule requête
    Par EvilJajuka dans le forum Débuter
    Réponses: 5
    Dernier message: 30/09/2009, 11h00
  3. [MySQL] Deux COUNT dans une requête
    Par ecchymose dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/07/2007, 23h24
  4. [SQL2K] Deux count dans une même requete
    Par maitrebn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/02/2007, 17h12
  5. [Requete] Deux count dans une requete
    Par wperezrobles dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/10/2006, 09h17

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