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

Requêtes MySQL Discussion :

Comment obtenir le nombre de ligne dans une requête ?


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 204
    Points : 123
    Points
    123
    Par défaut Comment obtenir le nombre de ligne dans une requête ?
    Bonjour,

    j'ai une requête que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    SELECT manufacturer.name
    FROM manufacturer, product
    WHERE manufacturer.id_manufacturer = product.id_manufacturer
    AND product.id_category =  '2'
    GROUP BY product.id_manufacturer
    HAVING COUNT( DISTINCT product.id_product ) >100
    Et ça m'affiche comme résultat une colonne à 5 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    name
    -------------------------
    Chrysler
    Citroen
    Dacia
    Peugeot
    Renault
    Donc comme il y a 5 lignes je cherche la requête select count() qui m'affiche justement comment résultat 5

    Une idée ?

    Merci d'avance, cordialement.

  2. #2
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 865
    Points
    1 865
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT COUNT(*) FROM (SELECT manufacturer.name
    FROM manufacturer, product
    WHERE manufacturer.id_manufacturer = product.id_manufacturer
    AND product.id_category =  '2'
    GROUP BY product.id_manufacturer
    HAVING COUNT( DISTINCT product.id_product ) >100) as data

  3. #3
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 204
    Points : 123
    Points
    123
    Par défaut
    Bonjour

    merci pour ta réponse.

    Cependant, l'alias ne s'affiche pas dans la table de résultat.
    J'ai count(*) comme nom de colonne au lieu de l'alias.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    count(*)
    ----------
    5
    Je ne sais pas si c'est pour cette raison là :
    http://dev.mysql.com/doc/refman/5.0/...ith-alias.html

    Une idée ?

    Merci d'avance, cordialement

  4. #4
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    L'alias de la requête, DATA, est celui de la table résultant de la sous-requête, pas celui de la colonne.

  5. #5
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 204
    Points : 123
    Points
    123
    Par défaut
    Re :

    merci, mais comment puis-je avoir un alias de la colonne svp ?

    Cdt, a+

  6. #6
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 865
    Points
    1 865
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT COUNT(*) AS COUNTER FROM (SELECT manufacturer.name
    FROM manufacturer, product
    WHERE manufacturer.id_manufacturer = product.id_manufacturer
    AND product.id_category =  '2'
    GROUP BY product.id_manufacturer
    HAVING COUNT( DISTINCT product.id_product ) >100) AS DATA

  7. #7
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 204
    Points : 123
    Points
    123
    Par défaut
    Re : je crois que j'ai presque trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    SELECT category.name, category.id_category, 
    (
    	SELECT COUNT(*) FROM 
    	(
    			SELECT product.id_manufacturer 
    			FROM product 
    			GROUP BY product.id_manufacturer
    			HAVING COUNT( DISTINCT product.id_product ) >= 2
    	)
     
    ) AS nombre_distinct_manufacturer
    FROM category, product
    WHERE category.id_category = product.id_category 
    GROUP BY product.id_category
    HAVING nombre_distinct_manufacturer >= 3
    Mais mysql m'affiche cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Every derived table must have its own alias
    Une idée ?

    Merci d'avance, cdt.

  8. #8
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 865
    Points
    1 865
    Par défaut
    Rajoute un "AS" au count comment sur ma requete au dessus je pense.

  9. #9
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 204
    Points : 123
    Points
    123
    Par défaut
    Merci kedare pour ta réponse qui a résolu mon problème.

    Je me suis trompé de discussion en postant mon message n° #7.

    Le message n° #7 devait etre posté dans la discussion :
    http://www.developpez.net/forums/d11...bonne-requete/ (que je n'ai pas réussi à résoudre d'ailleurs)

    Merci pour ta résolution !

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

Discussions similaires

  1. [AC-2003] limitation du nombre de ligne dans une requête
    Par saiffadi dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 04/03/2012, 18h33
  2. [AC-2010] Recupération nombre de ligne dans une requête pour msgbox
    Par Xorbane dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/01/2012, 08h02
  3. Obtenir le nombre de lignes dans un RecordSet
    Par LapinGarou dans le forum MFC
    Réponses: 3
    Dernier message: 25/10/2005, 15h51
  4. Réponses: 28
    Dernier message: 22/09/2005, 11h57
  5. Réponses: 8
    Dernier message: 20/06/2005, 15h10

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