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 :

Historique des ventes sur 3 années


Sujet :

Langage SQL

  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 des ventes sur 3 années
    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

    J'ai déjà poster dans la partie réservée à SQL Server mais sans réponse je "remonte" d'un cran.

  2. #2
    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 789
    Points
    30 789
    Par défaut
    La fonction DATEADD, associée à DATEPART, peut t'aider dans SQLServer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DATEADD ( datepart , number, date ) 
    DATEPART ( datepart , date )
    Pour connaître le dernier jour du mois précédent, tu peux calculer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATEADD(dd, - DATEPART(dd, GETDATE()), GETDATE())
    Pour connaître le premier jour de ta période de 36 mois, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATEADD(mm, -37, DATEADD(dd, 1 - DATEPART(dd, GETDATE()), GETDATE()))
    Ne reste plus qu'à utiliser BETWEEN pour borner l'intervalle...
    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 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 mais si je comprend ta réponse je vais me tiré avec l'ensemble des ventes sur les 3 dernieres années mais pas moi par moi.

    Faut-il que je fasse 36 requetes ? je pense pas ! je pense qu'il y a une solution moins fastidieuse avec peut etre une boucle. Je ne sais pas ...

  4. #4
    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 789
    Points
    30 789
    Par défaut
    Citation Envoyé par boux2
    Merci mais si je comprend ta réponse je vais me tiré avec l'ensemble des ventes sur les 3 dernieres années mais pas moi par moi.

    Faut-il que je fasse 36 requetes ? je pense pas ! je pense qu'il y a une solution moins fastidieuse avec peut etre une boucle. Je ne sais pas ...
    Je t'ai donné l'expression de filtre (clause WHERE) qui peut sembler complexe.
    Après si tu veux faire un regroupement mois par mois, c'est dans la clause GROUP BY que ça se passe, et c'est relativement simple.
    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.

  5. #5
    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
    Citation Envoyé par al1_24
    Je t'ai donné l'expression de filtre (clause WHERE) qui peut sembler complexe.
    Après si tu veux faire un regroupement mois par mois, c'est dans la clause GROUP BY que ça se passe, et c'est relativement simple.

    Dans mon esprit le Group by je vais l'utiliser sur le champ CodeArticle.
    Ainsi je passerais de : (et sans prendre en compte la date)

    Article--QteVendue
    Art1------10
    Art1------140
    Art2------245
    Art3------5
    Art3------5

    à ca :


    Article--QteVendue
    Art1------150
    Art2------245
    Art3------10

    donc pour reprendre le GROUP BY doit grouper deux champs en même temps ? un pour les article et l'autre pour les dates ?

  6. #6
    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 789
    Points
    30 789
    Par défaut
    Citation Envoyé par boux2
    donc pour reprendre le GROUP BY doit grouper deux champs en même temps ? un pour les article et l'autre pour les dates ?
    Sans problème, c'est fait pour ça...
    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.

  7. #7
    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
    Entre les réponses d'ici et celles de la partie SQL Server je considère le sujet comme résolu.

    Merci à tous

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

Discussions similaires

  1. Historique des requêtes sur la base
    Par simonlourson dans le forum Administration
    Réponses: 6
    Dernier message: 20/08/2010, 14h44
  2. Historique des commits sur un projet
    Par chris_013 dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 0
    Dernier message: 05/01/2010, 11h23
  3. Historique des requêtes sur une base
    Par Dschub dans le forum Firebird
    Réponses: 1
    Dernier message: 16/04/2008, 15h10
  4. Historique de ventes sur 3 ans par mois
    Par boux2 dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 19/07/2006, 09h16
  5. Réponses: 4
    Dernier message: 25/11/2005, 18h15

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