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

Développement SQL Server Discussion :

Calcul d'évolution TSQL


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut Calcul d'évolution TSQL
    Bonjour,


    Novice sur SQL SRV 2k5.
    Je souhaite faire la chose suivante :

    Une table T_MOY: id, annee, indic_1,..5

    T_MOY:
    ID | ANNEE | INDIC_1 | INDIC_2 | evol
    1 2007 100 50 ...
    2 2008 200 75 ...
    3 2009 100 150 ...
    4 2010 300 100 ...

    Je souhaite faire le calcul suivant:

    ( Somme(indic_1) pour l'année 2007 / Somme(indic_1) pour l'année MIN -1 ) -1

    Pour indic_1:
    Pour la premiere ligne ca donnerait : 0
    Pour la ligne suivante : 100
    ( Somme(indic_1) pour l'année 2008 / Somme(indic_1) pour l'année 2007 ) -1

    Je dois incrémenter les années en fonction de +1 et je ne vois pas comment faire cela en SQL ou TSQL. Je dois créer une boucle qui va compter de année = min(année) +1 jusqu'à année en cours -1 et réaliser le calcul pour chaque ligne et chaque indicateur.

    en ce que quelqu'un à une idée? Est-ce assez clair ?

    Merci de votre aide.

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 2
    Par défaut Solution possible mais pas la meilleur
    Bonjour,

    Je suis pas trop d'accord avec les résultats de ton calcul (200/100)-1 = 1
    Voila un exemple qui répond à ton problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    DECLARE @ANNEE_MIN INT
    DECLARE @ANNEE_MAX INT
    DECLARE @COMPTEUR INT
    DECLARE @INDIC_A FLOAT
    DECLARE @INDIC_A1 FLOAT
    DECLARE @RESULTAT FLOAT
     
     
     
    select @ANNEE_MIN = MIN(ANNEE) FROM T_MOY
    select @ANNEE_MAX = MAX(ANNEE) FROM T_MOY
    SET @COMPTEUR = @ANNEE_MIN
     
    WHILE (@COMPTEUR <=@ANNEE_MAX)
    BEGIN
    SELECT @INDIC_A = SUM(INDIC_1) FROM T_MOY WHERE ANNEE = @COMPTEUR
    SELECT @INDIC_A1 = SUM(INDIC_1) FROM T_MOY WHERE ANNEE = @COMPTEUR-1
    SET @RESULTAT = (@INDIC_A/@INDIC_A1)-1
    PRINT('ANNEE '+CONVERT(VARCHAR,@COMPTEUR)+':'+CONVERT(VARCHAR,@RESULTAT))
    SET @COMPTEUR = @COMPTEUR+1
     
    END

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    Merci etienne56 pour ta réponse.

    en fait, tu as raison, mon calcul n'est pas tout à fait fait correct.
    ca serait pluôt :

    ( Somme indicateur pour annee 2008 / somme indicateur pour l'année 2007 ) -1 / (n - 1 - ref)

    ( n - 1 - ref ) = 2011 - 1 - 2006
    ref=2006.

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    Pardon et n = année en cours (2011).

  5. #5
    Membre averti
    Homme Profil pro
    IED décisionnel
    Inscrit en
    Mai 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IED décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 37
    Par défaut
    Donc tu as juste à ajouter une ligne qui fait le calcul

  6. #6
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    je te remercie de ton aide.

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

Discussions similaires

  1. XL2010 : Calcul d'évolution dans Powerpivot
    Par christof27 dans le forum Excel
    Réponses: 1
    Dernier message: 24/09/2013, 09h22
  2. Calculer une évolution
    Par villegente dans le forum SQL
    Réponses: 6
    Dernier message: 11/06/2013, 00h55
  3. [AC-2003] Etat avec calcul d'évolution et Cumul mobile
    Par christof27 dans le forum IHM
    Réponses: 0
    Dernier message: 14/12/2012, 09h34
  4. Calculer des évolutions
    Par achestyx dans le forum Développement
    Réponses: 3
    Dernier message: 28/05/2009, 18h15
  5. [2.2.1][Général] Calculer l'évolution entre 2 années
    Par erwan.bodere dans le forum BIRT
    Réponses: 4
    Dernier message: 06/12/2007, 15h29

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