我已经使用SSIS将一些数据从Excel文件导入到我的SQL Server表中。由于它是损益表的报告,因此具有标题为交易名称,地址会计年度等的标题。
在SSIS中,我使用了OLE DB Source并使用了类似的查询
Select * from [Sheet1$A10:E]
因此数据已被提取。但是您需要插入交易名称和会计年度信息以及其他数据,例如
Trader FYear AccNo AccName July August September
a 2014 4-0000 In
a 2014 4-0500 Ad $4,514.06 $4,521.23 $4,296.62
a 2014 4-1000 Me $37,085.78 $35,676.20 $36,150.87
a 2014 4-1300 Ro $11,876.20 $10,956.70 $11,819.04
a 2014 4-2000 Gr $57,540.76 $52,978.63 $54,272.24
我可以使用OLE DB源从SQL表格中提取交易者和FYear,SQL是
select * from [Sheet1$a1:a8]
并使用条件拆分,我可以将它们分开。但是我实际上并不知道如何像上面那样将数据插入到该表的每一列中。
还有一件事,如果我这样写查询
insert into tblA(Trader, FYear, AccNo, AccName, July, August, September)
select
'a', '2014', tblB.AccNo, tblB.AccName,
tblB.July, tblB.August, tblB.September;
然后,它可以在SQL Server表中工作,但是有人可以帮我将上面的数据插入这两列吗?不管怎么说,还是要谢谢你
![在此处输入图片描述] [1]
Trading Name(a)
Address1
Address2
Profit & Loss Statement
Fiscal Year(2014)
AccNo AccName July August September
4-0000 In
4-0500 Ad $4,514.06 $4,521.23 $4,296.62
4-1000 Me $37,085.78 $35,676.20 $36,150.87
4-1300 Ro $11,876.20 $10,956.70 $11,819.04
4-2000 Gr $57,540.76 $52,978.63 $54,272.24
4-3500 B $0.00 $0.00 $0.00
4-4000 P $3,576.76 $4,110.66 $2,208.31
4-5000 Be $19,559.94 $17,926.14 $18,260.71
4-6000 Tu $13,471.97 $15,042.04 $13,150.06
4-8900 Re $3,500.00 $0.00 $0.00
Total Income $151,125.47 $141,211.60 $140,157.85
5-0000 Cost of Sales
Gross Profit $151,125.47 $141,211.60 $140,157.85
6-0000 Expenses
6-1000 General & Administrative Exp
6-1050 Accounting Fees $0.00 $0.00 $270.00
6-1200 Bank Charges $11.20 $11.20 $14.99
我可以使用OLE DB Source从该Excel工作表中获取交易者和FYear,但实际上我不知道如何将数据插入到该表格的每一列中,如上
使用现有方法在开始时使用交易者和FYYear填充两个SSIS变量。然后,在数据流中,使用派生的列转换并将变量值作为附加列插入。
根据您发送的图像:
删除除第一个ForEachLoop容器及其内容以外的所有内容
在此ForEachLoop容器内,添加一个运行的执行SQL任务select * from [Sheet1$a1:a1]
。这应该获得“会计年度”(如果它在该单元格中),并且您应该能够将结果加载到单个字符串变量中(您需要事先创建)。您需要将其设置为ResultSet = SingleRow,并且需要映射结果集区域。您不需要使用参数映射区域
在此处查看有关如何从单行结果中加载变量的更多信息:https : //www.simple-talk.com/sql/ssis/ssis-basics-using-the-execute-sql-task-to-generate -结果集/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句