none
Trier des colonnes RRS feed

  • Discussion générale

  • Bonjour à tous,

     

    Je travaille sous l'envirennement de travail SSIS 2005.


    Récupérant des données à partir d'un fichier plat grâce à SSIS 2005 pour les stocker dans une table, certaines lignes ne sont pas placé dans la bonne colonne (surement du à la base à une mauvaise organisation du fichier plat).

    Mes colonnes sont donc bien définis, mais certaines lignes à l'intérieur ne mal trier.

     

    Exemple :
    Valeur1 Valeur2 Valeur3 Valeur4 Valeur5 Valeur6 Valeur7 Valeur8
    1er 2eme 3eme 5eme 4 eme 6eme 7eme 8eme
    1er 2eme 4eme 3eme 5eme 6eme 7eme 8eme
    1er 2eme 3eme 5eme 4eme 6eme 7eme 8eme

     

    et je souhaiterai obtenir :


    Valeur1 Valeur2 Valeur3 Valeur4 Valeur5 Valeur6 Valeur7 Valeur8
    1er 2eme 3eme 4eme 5 eme 6eme 7eme 8eme
    1er 2eme 3eme 4eme 5eme 6eme 7eme 8eme
    1er 2eme 3eme 4eme 5eme 6eme 7eme 8eme


    Merci d'avance pour votre aide

    jeudi 30 août 2007 15:15

Toutes les réponses

  • Bonsoir,

     

    Comment génères-tu ton fichier à plat?

     

    Comment intègres-tu le fichier dans la table?

     

    A priori, le problème se situe au moment de la génération !

    Les espaces peuvent décaler les valeurs, mais pas les inverser.

     

    A bientôt,

    jeudi 30 août 2007 17:53
    Modérateur
  • Bonjour Thierry,

     

    Mon fichier plat est généré à partir d'une table appelé RECORDING dans laquelle je récupère toutes les lignes et colonnes.

     

    Après stockage dans le fichier plat, j'utilise un "conditionnal split" qui me permet de splitter toutes les colonnes de la table RECORDING, séparé des virgules.

     

    Je stocke le tout dans une nouvelle table  appellée JOURNAL_TABLE. cependant je me suis rendu compte que certaines lignes ne sont pas bien ordonné, sachant que le fichier plat à la base n'est pas bine ordonné aussi.

     

    Par exemple, pour les colonnes C, D, E au lieu d'avoir :

     A    B   C   D   E  F

     "1","2","3","4","5","6"

     "1","2","3","4","5","6"

     "1","2","3","4","5","6"

     

    on va avoir :

     A    B   C    D    E    F

     "1","2","3","4","5","6"

     "1","2","4","5","3","6".

     "1","2","5","3","4","6"

     

    je souhaiterai donc trouver une méthode sous SSIS 2005  qui ferait un retriage de ligne pour obtenir les bonnes données dans les bonnes colonnes (A B C D E F)

     

    Merci d'avance pour ton aide Thierry et j'espère avoir été synthétique Wink

     

     

     

    vendredi 31 août 2007 09:15
  • d'accord !

     

    mais comment déterminer l'inversion?

    Sachant que le fichier texte et la table correspondent, si rien n'indique ce qui doit être en position 3,4 ou 5, ce sera difficile.

    A+

    vendredi 31 août 2007 21:28
    Modérateur
  • Bonjour,

     

    OUi je pense que si le fichier txt est mal trié à la base, les choses n'en seront que plus compliqués.

     

    Cependant, pour chaque axe, je sais exactement les valeurs possibles, car elles sont déjà prédéfinis. Par exemple, pour mon axe 2 (axe temps), je sais que les seules valeurs seront :

    S1(semestre), Q1 (trimestre), M01 (mois), M02, M03, Q2, M04, M05, M06,         

    S2, Q3,  M07, M08,  M09, Q4, M10, M11, M12,

     

    ou pour l'axe 3, je sais que les seules valeurs peuvent être FY05, FY06, FY07.

     

    Je ne sais donc pas si, il est possible de dire à SSIS que si il trouve une valeur commencant par FY*, alors la mettre dans l'axe 3 et si il trouve une valeur égale à M0*, alors mettre dans l'axe 2.

     

    Merci d'avance pour ton aide Thierry

     

    Voici l'exemple de ma table à retrier :

     

     "NA_TRE"  "LOC_APP"  "I_NA"  "MTH"  "M10"  "REP_NA"  "T_CUR_M"  "V_DEF"  "FY06"
     "NA_TRE"  "LOC_APP"  "I_NA"  "MTH"  "M10"  "REP_NA"  "T_CUR_M"  "V_DEF"  "FY06"
     "NA_TRE"  "LOC_APP"  "I_NA"  "MTH"  "M10"  "REP_NA"  "T_CUR_M"  "V_DEF"  "FY06"
     "T_CAH_COL_WEK"  "T_W4"  "I_NA"  "MTH"  "M11"  "REP_NA"  "V_DEF"  "FY06"  "B_RU_02NO"
     "T_OVD"  "T_W1"  "LOC_APP"  "I_NA"  "MTH"  "M11"  "REP_CUR"  "V_DEF"  "FY06"
     "T_REV"  "FY07"  "M07"  "T_FOR_M5"  "I_NA"  "MTH"  "REP_CUR"  "T_CUR_NA"  "V_DEF"
     "T_REV"  "FY07"  "M07"  "T_FOR_M5"  "I_NA"  "MTH"  "REP_CUR"  "T_CUR_NA"  "V_DEF"
     "T_REV"  "FY07"  "M07"  "T_FOR_M6"  "I_NA"  "MTH"  "REP_CUR"  "T_CUR_NA"  "V_DEF"
     "T_VAT_REC"  "FY07"  "M07"  "T_FOR_M5"  "I_NA"  "MTH"  "REP_CUR"  "T_CUR_NA"  "V_DEF"
     "T_REV"  "FY07"  "M07"  "T_FOR_M5"  "I_NA"  "MTH"  "REP_CUR"  "T_CUR_NA"  "V_DEF"
     "T_REV"  "FY07"  "M07"  "T_FOR_M5"  "I_NA"  "MTH"  "REP_CUR"  "T_CUR_NA"  "V_DEF"
     "FY07"  "M07"  "T_CUR_M"  "MTH"  "REP_NA"  "NA_TRE"  "V_DEF"  "B_RU_63US"  "I_H_RU_02LBM"
     "FY07"  "M07"  "T_CUR_M"  "MTH"  "REP_NA"  "NA_TRE"  "V_DEF"  "B_RU_63US"  "I_H_RU_02LBM"
     "FY07"  "M07"  "T_FOR_M5"  "NA_TRE"  "I_NA"  "MTH"  "REP_CUR"  "T_CUR_NA"  "V_DEF"
     "FY07"  "M07"  "T_FOR_M5"  "NA_TRE"  "I_NA"  "MTH"  "REP_CUR"  "T_CUR_NA"  "V_DEF"
     "FY07"  "M07"  "T_FOR_M5"  "NA_TRE"  "I_NA"  "MTH"  "REP_CUR"  "T_CUR_NA"  "V_DEF"

     

    lundi 3 septembre 2007 09:18