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 :

COUNT avec condition


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Par défaut COUNT avec condition
    Bonjour,

    J'ai trois tables dont je ne mentionne ici que les champs concernés par mon problème.

    1. tbl_client (ID_CLIENT, NOM_CLIENT)
    2. tbl_article(ID_ARTICLE) et
    3. tbl_vente (DATE_VENTE, ID_CLIENT, ID_ARTICLE, REMISE)


    Je cherche à compter pour chaque client le nombre de fois qu'il a acheté un article depuis la dernière fois qu'une remise lui a été faite pour l'article.

    Exemple.

    Un client ID_CLIENT = 18 achète un disque dur dont ID_ARTICLE = 1 le 31/12/2013, je lui fait une remise. Il continue de payer régulièrement cet article.

    Il vient aujourd'hui le 09/05/2014 J'aimerai connaître le nombre de disque dur qu'il acheté depuis que je lui ai fait une remise sur l'article. Je souhaite lui faire une remise au dixième disque dur acheté.

    Pouvez-vous m'aider à écrire la requête.

    D'avance merci.

    Lucienkany.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 143
    Par défaut
    A quel niveau de la requête que tu as commencé à écrire rencontres-tu un problème ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre éclairé Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Par défaut
    Bonjour Al,

    J'ai fait une requête qui me donne le total acheté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT C.ID_CLIENT,  COUNT(V.ID_ARTICLE) FROM VENTE V
    INNER JOIN CLIENT C ON V.ID_CLIENT = C.ID_CLIENT
    WHERE REMISE > 0 AND ID_ARTICLE = 1 AND C.ID_CLIENT = 1
    GROUP BY C.ID_CLIENT, V.ID_ARTICLE
    Mon problème est de mettre une condition pour qu'il commence à compter à partir du dernier achat de ID_ARTICLE pour IDCLIENT avec une remise.

    D'avance merci.

    Lucienkany

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 955
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 955
    Par défaut
    Avec une sous-requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT COUNT(v.ID_ARTICLE) 
      FROM VENTE v
     where v.ID_ARTICLE = 1 
       AND v.ID_CLIENT  = 1
       and v.date_vente > (select max(v2.date_vente)
                             from VENTE v2
                            where v2.ID_ARTICLE = v.ID_ARTICLE
                              and v2.ID_CLIENT  = v.ID_CLIENT
                              and v2.remise     > 0)

  5. #5
    Membre éclairé Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Par défaut
    Merci skuatamad et à vous tous.

    Le code de skuatamad fonctionne bien.

    Meilleures salutations.

    Lucienkany

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

Discussions similaires

  1. effectuer un count avec conditions
    Par tibss dans le forum Langage SQL
    Réponses: 6
    Dernier message: 28/04/2010, 18h11
  2. Count avec condition
    Par sherpa421 dans le forum iReport
    Réponses: 1
    Dernier message: 20/11/2009, 11h54
  3. Count avec condition
    Par ElBarto38 dans le forum SQL
    Réponses: 5
    Dernier message: 05/11/2009, 15h56
  4. Réponses: 1
    Dernier message: 22/12/2008, 10h15
  5. Count avec condition
    Par sourivore dans le forum Langage SQL
    Réponses: 24
    Dernier message: 22/08/2005, 22h41

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