2017-10-11 8 views
1

Je .csv comme ceci:Format de fichier .csv à l'aide SSIS

+---------+--------+--------------------+---------+-----+----------+----------------+ 
| CLIENTE | CENTRO |  MATERIAL  | PERIODO | MES | UNIDADES | PLATAFORMA | 
+---------+--------+--------------------+---------+-----+----------+----------------+ 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 1 |  100 | F25 -(BMW X3) | 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 2 |  200 | F25 -(BMW X3) | 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 3 |  300 | F25 -(BMW X3) | 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 4 |  400 | F25 -(BMW X3) | 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 5 |  500 | F25 -(BMW X3) | 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 6 |  600 | F25 -(BMW X3) | 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 7 |  700 | F25 -(BMW X3) | 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 8 |  800 | F25 -(BMW X3) | 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 9 |  900 | F25 -(BMW X3) | 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 10 |  1000 | F25 -(BMW X3) | 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 11 |  1100 | F25 -(BMW X3) | 
| 100013 | 2001 | 1A000-991801053303 | 2017 | 12 |  1200 | F25 -(BMW X3) | 
+---------+--------+--------------------+---------+-----+----------+----------------+ 

et je l'ai lu sans problème avec la source de fichier plat et enfin envoyer à ADO NET destination. Le problème est que notre client veut lire les registres d'une autre façon. Leur fichier .csv est formaté comme:

+---------+--------+--------------------+----------------+--+----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ 
| CLIENTE | CENTRO |  MATERIAL  | PLATAFORMA | | 2017-1 | 2017-2 | 2017-3 | 2017-4 | 2017-5 | 2017-6 | 2017-7 | 2017-8 | 2017-9 | 2017-10 | 2017-11 | 2017-12 | 
+---------+--------+--------------------+----------------+--+----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |  100 |  200 |  300 |  400 |  500 |  600 |  700 |  800 |  900 | 1000 | 1100 | 1200 | 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |   |   |   |   |   |   |   |   |   |   |   |   | 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |   |   |   |   |   |   |   |   |   |   |   |   | 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |   |   |   |   |   |   |   |   |   |   |   |   | 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |   |   |   |   |   |   |   |   |   |   |   |   | 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |   |   |   |   |   |   |   |   |   |   |   |   | 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |   |   |   |   |   |   |   |   |   |   |   |   | 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |   |   |   |   |   |   |   |   |   |   |   |   | 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |   |   |   |   |   |   |   |   |   |   |   |   | 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |   |   |   |   |   |   |   |   |   |   |   |   | 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |   |   |   |   |   |   |   |   |   |   |   |   | 
| 100013 | 2001 | 1A000-991801053303 | F25 -(BMW X3) | |   |   |   |   |   |   |   |   |   |   |   |   | 
+---------+--------+--------------------+----------------+--+----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ 

Donc premiers registres de la cinquième colonne: 2017-10 et 100 correspondent à la première rangée d'un autre 4 colonnes 2017-11 et 200 à la deuxième rangée et ainsi de suite ...

Comme vous pouvez voir les 4 premières colonnes sont les mêmes, mais la colonne 5 pas. Ils fusionnent la colonne PERIODO et MES et en dessous, nous avons la colonne UNIDADES. que je veux est comment le formater .csv et le format en premier.

Donc, en conclusion, je veux convertir deuxième fichier .csv en premier

je lis que je peux y parvenir en utilisant PIVOT. Mais je ne comprends vraiment pas comment l'utiliser. Je recherche des tutoriels à ce sujet et je n'ai rien trouvé de similaire que je veux faire.

package SSIS réelle:

Package

+0

Vous pouvez convertir des lignes en colonnes à l'aide des opérateurs relationnels de serveur SQL Pivot. Au lieu d'effectuer cette tâche à l'aide de SSIS, utilisez SQL. – observer

Répondre

0

Utiliser la transformation Unpivot. enter image description here

+0

Ça sonne bien, je l'essaie et ça marche mais maintenant, qu'en est-il de la colonne "UNIDADES"? comment puis-je revenir à la colonne aussi? – Pepe