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 et SQL. Discussion :

Requête avec calcul de valeurs de deux jours différents


Sujet :

Requêtes et SQL.

  1. #1
    Membre averti
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Novembre 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Novembre 2014
    Messages : 27
    Par défaut Requête avec calcul de valeurs de deux jours différents
    Bonjour,

    J'ai une requête à faire sur une table. Cette table nommé "TEST" est:

    Date Valeu1 Valeur2
    ... ... ...
    17/06/2016 1000 200
    18/06/2016 800 100
    19/06/2016 900 50
    ... ... ...

    Résultat de la requête:

    Date Difference
    ... ...
    17/06/2016 ...
    18/06/2016 300
    19/06/2016 -50
    ... ...

    L'objectif, si vous l'avez compris est de faire la différence entre les valeurs de deux dates consécutive. Ainsi dans le résultat de la requête pour le 19/06/2016 = (somme des valeurs du 18/06/2016) - (somme des valeurs du 19/06/2016) = (800 + 100) - (900 + 50) = -50.

    J'arrive bien sur à faire la requête pour les valeurs du jours même et faire la somme mais pas la soustraction à la somme de la veille.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TEST.Date, (TEST.Valeur1 + TEST.Valeur2) AS Difference FROM TEST


    Soustraction des valeurs de la veille serait-elle sous cette forme là?:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TEST.Date, ((SELECT (TEST.Valeur1 + TEST.Valeur2) As Calcul FROM TEST WHERE TEST.Date = DATEADD('d',-1, TEST.Date)) - (TEST.Valeur1 + TEST.Valeur2)) AS Difference FROM TEST

    Déjà, est-ce possible de faire ce type de requête? et si oui...

    Merci beaucoup pour votre aide!!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    comme tu le dis tu arrive a faire la somme sur un même date
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TEST.Date, (TEST.Valeur1 + TEST.Valeur2) AS Difference FROM TEST
    mais tu peux faire l'inverse fixant la date sur hier!
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TEST.Date -1 as D, (TEST.Valeur1 + TEST.Valeur2) * -1 AS Difference FROM TEST

    si je fais un requête d'Union.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TEST.Date as D, (TEST.Valeur1 + TEST.Valeur2) AS Difference FROM TEST Union All SELECT TEST.Date -1 as D, (TEST.Valeur1 + TEST.Valeur2) * -1 AS Difference FROM TEST

    maintenant si je fais la somme.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select D ,sum(Difference) from(SELECT TEST.Date as D, (TEST.Valeur1 + TEST.Valeur2) AS Difference FROM TEST Union All SELECT TEST.Date -1 as D, (TEST.Valeur1 + TEST.Valeur2) * -1 AS Difference FROM TEST) group by D order by d
    Dernière modification par ClaudeLELOUP ; 30/07/2016 à 15h47.

  3. #3
    Membre averti
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Novembre 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Novembre 2014
    Messages : 27
    Par défaut
    C'est GE NIAL!!!

    Merci beaucoup rdurupt!!

    Pour compléter cette requête si par jour je veux rajouter la somme d'une autre table C lorsque le produit est "pomme":
    DateConso Produit Quantité
    ... ... ...
    18/06/2016 Pomme 500
    19/06/2016 Pomme 200
    19/06/2016 Pomme 300
    19/06/2016 Poire 100
    ... ... ...


    Ainsi la requête résultante sera finalement:

    Date Difference
    ... ...
    17/06/2016 ...
    18/06/2016 800
    19/06/2016 450
    ... ...



    La valeur pour le 19/06/2016 ne sera donc plus de -50 mais -50 + 300 + 200 = 450

    Pour faire la requête de cette table C qui fait la somme par jour en fonction du produit si celui-ci est "Pomme", je fais:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT C.DateConso, SUM(C.Quantité) FROM C WHERE C.Produit = "Pomme" GROUP BY C.DateConso

    Mais comment l'intégrer à la requête des differences de jour pour rajouter ces montants par jour???

    Merciiiiii

  4. #4
    Invité
    Invité(e)
    Par défaut
    Mais comment l'intégrer à la requête des differences de jour pour rajouter ces montants par jour???
    j'imagine qu'il faut tenir compte du cour de la valeur journalière et comment tu revalorise ton stock?

    tu peux te trimbaler dans le différentes requêtes la quantité du du jour ainsi que son cour et proraté en tenant compte de règles de nommage pour la revalorisation du stock!

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/07/2016, 14h18
  2. [A-03] Requête avec toutes les valeurs d'un champ
    Par badeux dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/10/2008, 11h22
  3. Réponses: 10
    Dernier message: 12/06/2008, 15h06
  4. requête avec calcul d'un cumul
    Par kikidrome dans le forum Langage SQL
    Réponses: 16
    Dernier message: 21/03/2008, 10h13
  5. Requête pour calculer le temps entre deux dates
    Par Badboy62cfp dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 13h50

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