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

SSIS Discussion :

[SSIS]Comment créer une colonne dérivée à partir d'un champ d'une ligne précédente ?


Sujet :

SSIS

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 24
    Points : 25
    Points
    25
    Par défaut [SSIS]Comment créer une colonne dérivée à partir d'un champ d'une ligne précédente ?
    Bonsoir,

    J'ai en entrée une table avec une colonne foobar qui contient un nombre. e.g. 10,11,12...

    Je voudrais avoir en sortie une table avec une colonne barfoo qui contient un nombre qui est le total courant de foobar.e.g. 10,21,33...

    J'imagine que ça se fait avec une colonne dérivée de façon incrémentielle mais il faudrait que je puisse accéder à la valeur précédente.e.g.21+12=33

    Comment créer une colonne dérivée à partir d'un champ d'une ligne précédente ?

    a+, =)
    -=Finiderire=-

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 269
    Points : 339
    Points
    339
    Par défaut
    Salut,

    En SSIS, c'est assez simple.

    1) tu crées ta query source dans laquelle tu rajoute ta colonne "barfoo" = 0
    (ex sur adventureworks) et tu la places dans ton composant source

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select salesorderid, salesorderdetailid, orderqty as foobar, 0 as barfoo from sales.salesorderdetail
    2) tu utilise un "script component" de type transformation. Tu configures tes 2 colonnes "foobar" et "barfoo" en input et tu changes le "usage type" de "barfoo" en "readwrite".

    3) tu places le code suivant dedans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim tot As Int32 = 0
     
        Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    		tot = tot + Row.foobar
    		Row.barfoo = tot
    	End Sub
    Et le tour est joué...

    ps : tu pourrais probablement également le faire en sql...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 24
    Points : 25
    Points
    25
    Par défaut
    Merci,
    Citation Envoyé par psychokwax Voir le message
    Salut,

    En SSIS, c'est assez simple.

    1) tu crées ta query source dans laquelle tu rajoute ta colonne "barfoo" = 0
    (ex sur adventureworks) et tu la places dans ton composant source

    [CODE]
    select salesorderid, salesorderdetailid, orderqty as foobar, 0 as barfoo from[...]

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/05/2012, 16h02
  2. remplir une listbox a partir d'un champ d'une requete mysql
    Par xalam dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/04/2010, 19h39
  3. [OpenOffice][Base de données] Générer une clé a partir de deux champs d'une même table
    Par fasfas dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 01/03/2010, 11h33
  4. Comment créer un document XML à partir d'une chaine de caractères
    Par imad_eddine dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 19/11/2007, 19h09
  5. Remplir une liste déroulante à partir d'un champ dans une pop up
    Par wiam26 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/08/2006, 17h42

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