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] [2K8] dupliquer une ligne


Sujet :

SSIS

  1. #1
    Membre habitué

    Inscrit en
    Août 2008
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 177
    Points : 125
    Points
    125
    Par défaut [SSIS] [2K8] dupliquer une ligne
    Bonjour à tous,

    je voulais savoir si il est possible avec integration services de dupliquer une ligne selon certaines conditions.

    Pour illustrer mon problème :

    si code_dim1 = 4 & code_dim2 = 1 alors code_dim4 = 1
    si code_dim1 = 4 & code_dim3 = 8 alors code_dim4 = 2

    sachant que les deux conditions sont réalisables pour une seule ligne, comment faire avec l'ETL pour insérer deux lignes dans ma table de faits à partir d'une ligne en entrée.

  2. #2
    Membre habitué

    Inscrit en
    Août 2008
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 177
    Points : 125
    Points
    125
    Par défaut
    Toujours personne ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 265
    Points : 314
    Points
    314
    Par défaut
    Pour ma part, je le ferais plutôt côté SQL avec un requête du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT *, 1 as code_dim4
    FROM MaTable
    WHERE code_dim1 = 4 AND code_dim2 = 1
    UNION ALL
    SELECT *, 2 as code_dim4
    FROM MaTable
    WHERE code_dim1 = 4 AND code_dim2 = 8

  4. #4
    Membre habitué

    Inscrit en
    Août 2008
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 177
    Points : 125
    Points
    125
    Par défaut
    Merci, mais je cherche exclusivement une solution (ergonomique si possible) avec un ETL.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Bonjour,

    Dans SSIS, tu es dans le Data Flow Task, tu pars d'un composant Source, tu connectes un composant Multicast (c'est ce composant qui permet plusieurs sorties). Tu diriges une sortie sur un premier Conditional Split dans lequel tu places ta première condition. Tu diriges une autre sortie sur un second Conditional Split dans lequel tu places ta seconde condition. Tu connectes les deux Conditional Split sur un composant Union All. Tu auras ainsi le résultat voulu, c'est-à-dire les lignes qui valident la 1ere + les lignes qui valident la 2nde.

    a+,=)
    -=Clement=-

  6. #6
    Membre habitué

    Inscrit en
    Août 2008
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 177
    Points : 125
    Points
    125
    Par défaut
    Merci clément, j'avais déjà pensé à cet possibilité, le problème c'est que j'ai plusieurs centaines de règles, donc plusieurs centaines de multidiffusion ça fait un gros package...

    N'y aurait-it pas un moyen d'utiliser une transformation de type fractionnement conditionnel (en français) sans ordonnencement des conditions ?

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Citation Envoyé par dingo200 Voir le message
    Merci clément, j'avais déjà pensé à cet possibilité, le problème c'est que j'ai plusieurs centaines de règles, donc plusieurs centaines de multidiffusion ça fait un gros package...[...]N'y aurait-it pas un moyen d'utiliser une transformation de type fractionnement conditionnel (en français) sans ordonnencement des conditions ?
    Il y aura un seul Multicast. Par contre en effet autant de Conditional Split que de conditions. Je ne connais pas de moyen d'utiliser Conditional Split sans ordonnancement et cela reviendrait à inclure une fonction multicast dedans, donc à mon avis c'est impossible. 1000 règles ? Peut-être avec des lookup sur des tables de référence.

    a+, =)
    -=Clement=-

  8. #8
    Membre habitué

    Inscrit en
    Août 2008
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 177
    Points : 125
    Points
    125
    Par défaut
    Ok, je laisse le poste encore quelques jours non résolu au cas où quelqu'un aurait une autre solution.

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

Discussions similaires

  1. Dupliquer une ligne
    Par Tyler Durden dans le forum SAS Base
    Réponses: 6
    Dernier message: 21/04/2010, 09h29
  2. [SSIS][2005] Doubler une ligne
    Par geof dans le forum SSIS
    Réponses: 4
    Dernier message: 15/12/2008, 16h46
  3. Dupliquer une ligne sauf un champ
    Par brassouille dans le forum PL/SQL
    Réponses: 7
    Dernier message: 09/12/2008, 15h13
  4. Comment dupliquer une ligne ?
    Par gspeed007 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 09/11/2008, 20h02
  5. Dupliquer une ligne
    Par khokho dans le forum Administration
    Réponses: 2
    Dernier message: 26/07/2007, 15h47

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