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

PHP & Base de données Discussion :

Requête SQL assez complexe [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 32
    Points : 9
    Points
    9
    Par défaut Requête SQL assez complexe
    Bonjour à tous,

    Je cherche à faire une requête SQL assez complexe, et franchement, je n'y arrive pas depuis hier, alors j'ai vraiment besoin de votre aide.

    Je m'explique, j'ai une table avec les champs ci-dessous :
    - id (int)
    - id_client (int)
    - date (datetime)
    - nom_produit (varchar)

    J'aimerais calculer le nombre d'occurrences des produits qui ont le même nom, ensuite, j'aimerais que ça sélectionne seulement les produits qui ont un nombre d'occurrences supérieures à 5 et que ça trie les produits par date décroisant.

    Merci d'avance

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Hello,

    ceci devrait te convenir :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT nom_produit, COUNT(*) AS count
    FROM produits
    GROUP BY nom_produit
    HAVING count >= 5
    ORDER BY date DESC;
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Bonjour Spartacusply,

    Merci pour ta réponse, en revanche j'avais oublié une donnée essentiel, en effet, la requête ne doit sélectionner que les données par rapport à un "id_client" spécifique.

    Merci d'avance

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Ca change pas grand chose :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT nom, COUNT(*) AS count
    FROM produits
    WHERE id_client = 3 //"3" est un id client
    GROUP BY nom
    HAVING count >= 5
    ORDER BY date DESC;
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Voici la réponse de phpmyadmin :

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `id_client` = 1
    HAVING count >= 5
    ORDER BY `date' at line 4

  6. #6
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Cette requête fonctionne pourtant parfaitement bien, tu dois faire une erreur de syntaxe.

    Copie la ici tel que tu l'as lancée avec phpmyadmin.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    J'avais oublié la virgule, après "nom,". Donc la requête est bien exécute, en revanche aucun résultat ne s'affiche.

  8. #8
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Es-tu certain qu'il y est des résultats à afficher ?
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Des milliers d'enregistrements ;-)

  10. #10
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Montre quelques exemples de données ici que tu sais que tu devrais avoir des résultats (encore mieux, poste le script SQL d'insertion pour que l'on puisse tester). Il faut aussi que les noms soient strictement identiques.

    Si je te dis tout ça c'est que j'ai testé chez moi et ça fonctionne très bien.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Pardon, ça marche parfaitement bien

    Merci beaucoup, encore une dernière question, j'ai que la colonne des noms des produits qui s'affiche et le nombre de "count", comment afficher tous les autres champs ?

    Merci

  12. #12
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Remplace "SELECT nom" par "SELECT *"
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 32
    Points : 9
    Points
    9
    Par défaut
    Magnifique, merci beaucoup

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

Discussions similaires

  1. Requête SQL assez spécifique
    Par maitaddi dans le forum Requêtes
    Réponses: 0
    Dernier message: 05/10/2013, 12h29
  2. Aide pour requête SQL assez simple
    Par Pilloutou dans le forum Langage SQL
    Réponses: 15
    Dernier message: 28/03/2008, 15h07
  3. Requête sql complexe
    Par new_wave dans le forum Langage SQL
    Réponses: 1
    Dernier message: 03/01/2006, 11h55
  4. Requête SQL Complexe
    Par zut94 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/11/2005, 20h53
  5. Requête SQL complexe. Comment faire ....
    Par BilTCD dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/11/2004, 16h18

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