2012-05-03 53 views
0

做一些ETL和我有一个宽文件有很多列,为每个不同的值。我试图将其转换为每个值项一行的垂直文本文件。 所以我的数据表看起来像;如何从表格中选择一个字段,并从另一个表格中查找字段名称?

Store Date Col1 Col2 Col3 ... 
Store1 1/2/12 12 23 34 ... 
Store2 1/2/12 23 34 35 ... 

我的Col查找表看起来像;

GLCode GLDesc TaxRate XLSColName 
00.1234 Cash 0.00 Col2 

所以在我的输出文件行我需要;
Store1,1/2/34,00.1234,0.00,23
其中23是从场Col2中的数据表将其在格兰GL查阅字段specificed值。

我一直在努力做,这是SQL作为一个SSIS包的一部分,因为我看不出如何与查找任务做到这一点,但似乎无法做到这一点的SQL要么!

希望是有道理的,感谢您的帮助! JK

+0

是否需要完全动态的或者你有一个什么样的数据列将被命名为一个想法(或有限列表)? – GShenanigan

+0

理想情况下,它应该是动态的... – JoeK

回答

1

您需要看从摆动数据表:

Store Date Col1 Col2 Col3 ... 
Store1 1/2/12 12 23 34 ... 
Store2 1/2/12 23 34 35 ... 

Store Date Col Value 
Store1 1/2/12 Col1 12 
Store1 1/2/12 Col2 23 
Store1 1/2/12 Col3 34 
Store2 1/2/12 Col1 23 
Store2 1/2/12 Col2 34 
Store2 1/2/12 Col3 35 

所以,你可以把列名作为要连接的数据/抬起头。

-1

你的问题是有点混乱。我明白你想要做什么,但不能100%确定数据的存储位置。这是正确的吗?: 你有2个表格, 1个表格有你想要的数据吗? 1表中有值来搜索第一个表?

如果是你想要的东西,如:

SELECT t1.col1, t1.col2, ... 
FROM table_1 t1 
    LEFT JOIN table_2 t2 ON t1.common_field = t2.common_field 
WHERE t2.search_by = 'CRITERIA' 
2

从你我明白你的问题,你要寻找的SQL Server UNPIVOT function,这需要列,它们摆动到各行/值。将它与连接结合起来,从查找表中获取所需的信息。

要在SSIS做到这一点,你可以使用UNPIVOT Transformation

+0

尝试使用Unpivot SSIS任务并获取错误。 我选择STOREID和TxDate通过PAS和金额作为目标字段名,以招标的名称为所有的山口值,这是我所见过德演示一致。 我怀疑我的问题是由于想通过这两个领域,但我需要这样做? – JoeK

+0

我自己并没有与UNPIVOT Transformation合作过,但是您是否可以不使用高级编辑器并手动设置一些额外的输出列?你得到的错误是什么? – GShenanigan

相关问题