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

MS SQL Server Discussion :

Historique de ventes sur 3 ans par mois


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Points : 62
    Points
    62
    Par défaut Historique de ventes sur 3 ans par mois
    Bonjour,

    Je souhaite réaliser une requete qui va chercher dans une table les ventes d'un produit par mois sur 3 ans soit 36 mois!

    j'ai donc ma table
    Ventes(NuméroVente,QteVendue ... , #CodeArticle, ..., DateDeVente, ...)

    Nous sommes le 17/07/2006 je veux les quantités vendues du mois de juin 2006 (le dernier mois fini) à juillet 2003.

    On peux connaitre la date avec getDate() le mois avec month(getDate()) mais je ne sais pas comment prendre les 36 derniers mois finis.

    Merci de bien vouloir m'aider

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Je ne sais pas si j'ai bien compris. Est-ce que ceci te donne ce que tu cherches:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT YEAR(DateDeVente) as Annee, MONTH(DateDeVente) as Mois, COUNT(*) as Quantite
    FROM dbo.Ventes
    WHERE DateDeVente >= DATEADD(month, -36, current_timestamp) AND
    CodeArticle = ?
    GROUP BY YEAR(DateDeVente), MONTH(DateDeVente)
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    presque pareil que notre ami, sauf que :

    1- Il faut d'abord que tu fasses une fonction ou un bout de code dans ta proc qui détermine la date du dernier mois cloturé.
    Supposons que la variable s'appelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DECLARE @DateCloture DATETIME
    Bien sur il faut gérer les mois de février, et se poser la question si tu lances ta requête un dernier jours de mois (par ex le 31/07) tu veux les 3ans depuis 31/07 ou 30/06 ?

    2- Puis il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT CODEARTICLE, SUM(QTEVENDUE)
    FROM Ventes
    WHERE DATEDEVENTE <=@DateCloture
    AND DATEDEVENTE >=DATEDIFF(mm, -36, DateDeVente)
    GROUP BY CODEARTICLE

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Points : 62
    Points
    62
    Par défaut
    moi je veux ca :

    Article---07/03--08/03--09/03--...---05/06---06/06
    Art 1-----15-----20-----18-----...-----36-----25
    Art 2-----00-----00-----00-----...-----14-----23
    Art 3----100-----88-----96-----...----245----286

    L'historique moi à moi des ventes sur 3 ans pour chaque produits.
    Il faut faire un somme en fonction de la période
    Afficher chaque période
    Pour tous les article

    Merci

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    ben tu vas avoir du mal à avoir ce que tu veux, car il te faut faire un pseudo tableau dynamique croisé en SQL, et bonjour l'ambiance pour le faire.
    Je dis pas que c'est impossible, je dis juste que c'est complexe.

    En faisant une recherche sur ce forum, tu pourras peut être trouver ton bonheur. Je dis bien peut être

  6. #6
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    eh oui, à moins que tu sois sur SQL Server 2005.
    http://fadace.developpez.com/mssql/pivot/
    L'article contient aussi des solutions pour SQL 2000
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    comment utiliser un outil qui n'est pas fait pour cela...

    Je fais parti des personnes (mais surement ai-je tord) qui pensent que des tableaux de la sorte, c'est simplement de la mise en forme.

    Et que donc des outils, asservit à SQL server, peuvent très bien le faire, de manière très performante, en utilsant SQL server comme un container d'information brute.

    Mais je dois être de la veille école

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 783
    Points
    30 783
    Par défaut
    Citation Envoyé par ZERS
    comment utiliser un outil qui n'est pas fait pour cela...

    Je fais parti des personnes (mais surement ai-je tord) qui pensent que des tableaux de la sorte, c'est simplement de la mise en forme.

    Et que donc des outils, asservit à SQL server, peuvent très bien le faire, de manière très performante, en utilsant SQL server comme un container d'information brute.

    Mais je dois être de la veille école
    Pleure pas, ZERS, t'es pas tout seul...
    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.

  9. #9
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Ahh... je suis d'accord avec vous.
    J'ai sans doute pris une tendance ici qui est de répondre techniquement aux questions techniques. Souvent les gens se moquent des conseils qu'on peut leur donner, ils savent déjà ce qu'ils veulent faire, et ils n'écoutent pas tous quand on leur dit que ce n'est pas forcément une bonne idée. C'est un peu comme en entreprise quand les utilisateurs vous donnent les solutions techniques à leur problème.

    En attendant, la commande PIVOT peut être utile, c'est une question de mesure.
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Vais-je devenir bientôt un membre éclairé

    Bref, notre ami ne nous a pas répondu.... A-t-il réfléchi à son besoin ?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par rudib
    C'est un peu comme en entreprise quand les utilisateurs vous donnent les solutions techniques à leur problème.


    Il m'arrive même de voir des CR de réunions "métier" dans lesquels on parle de WebServices, .NET,

    "Dès fois, tu te demandes" disait le regretté coluche

  12. #12
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Citation Envoyé par ZERS
    Vais-je devenir bientôt un membre éclairé
    Ca vient automatiquement avec le nombre de contributions, c'est dire s'il faut prendre les étoiles au sérieux
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Points : 62
    Points
    62
    Par défaut
    Merci de vos aides je vais réfléchir à mettre en place un pivot car j'utilise SQL Server 2005 ou alors le tableau croisé d'Excel car je bosse aussi sur Excel.

    Je considère le problème résolu !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/02/2007, 10h29
  2. cumul vente par mois et par année
    Par christopheS dans le forum Access
    Réponses: 4
    Dernier message: 03/10/2006, 15h01
  3. Problème de tri sur les dates par année puis mois
    Par rob2-9 dans le forum Access
    Réponses: 26
    Dernier message: 11/08/2006, 11h04
  4. Historique des ventes sur 3 années
    Par boux2 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 19/07/2006, 09h18
  5. question sur 6 jours ouvrés par mois de préavis du syntec
    Par Filippo dans le forum Droit du travail
    Réponses: 21
    Dernier message: 14/06/2006, 13h20

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