2017-10-11 75 views
1

文件我.csv文件是这样的:格式的.csv使用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) | 
+---------+--------+--------------------+---------+-----+----------+----------------+ 

,我读它不与平面文件源问题,最后发送到ADO NET目标。问题是我们的客户想要读取其他方式的寄存器。他们的.csv文件的格式如下:

+---------+--------+--------------------+----------------+--+----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ 
| 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) | |   |   |   |   |   |   |   |   |   |   |   |   | 
+---------+--------+--------------------+----------------+--+----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+ 

柱所以首先寄存器五:2017-10100对应于另一个4列2017-11200到第二行等的第一排......

由于你可以看到前4列是相同的,但第5列没有。他们合并列PERIODOMES和它下面我们有列UNIDADES。我想要的是如何格式化这个.csv格式并将其作为第一个格式。

所以在最后我想第二.csv文件转换成第一个

我读,我可以使用PIVOT实现它。但我真的不懂如何使用它。我搜索关于它的教程,我没有发现任何与我想要做的类似的事情。

实际SSIS包:

Package

+0

您可以使用SQL Server枢轴关系运算符将行转换为列。而不是使用SSIS执行此任务,请使用SQL执行此任务。 – observer

回答

0

使用逆透视变换。此图像来自VS BIDS 2008. 然后,您可以使用pivotkey值在目标表中创建行 enter image description here

+0

听起来不错,我尝试了它,但它现在可行,但“UNIDADES”专栏呢?我怎样才能将它还原为列? – Pepe