如何在sqlserver 2008R2 / ssis中为每个日期导出单独的excel表和datetime?

时间:2015-04-02 15:08:11

标签: sql excel tsql ssis

有两个名为table1table2的表格。

我需要根据条件

导出数据
Table1

date         col2   col3   etc
2015-01-01    
2015-03-03
2015-02-27

列需要从412列

导出
Table2
date    name    amount    ..... 276    
2015-01-01    
2015-02-01    
2015-02-04   
2015-02-02    
2015-02-15   
2015-02-24    

注意:现在我需要从table1导出匹配日期的Excel表格。

每个Excel工作表应包含与该日期相对应的记录,因为table1中的每个日期都有> = 1000到1个匹配记录。

Excel工作表名称应为table name_2015-01-01.xlsx,因此从上表中我必须导出3张Excel工作表。

请在ssis或bcp中提供一个例子。

1 个答案:

答案 0 :(得分:0)

首先准备所需的sql查询结果并在批处理文件中进行

@Echo off 设置datekey =%1

bcp" SELECT col1,'""' + ISNULL(col2,'')FROM tbalename WHERE DATE_KEY =%datekey%" queryout path _%datekey%.csv -c -t,-r \ n -S" servername" -U username -P pwd -d databasename

现在我们需要使用tablename_date.csv /.xlsx单独创建excel文件

因为我已生成带有所需日期的exell表

bcp"从表格中选择不同的日期" queryout path \ filename.csv -c -t,-r \ n -S" servername" -U username -P pwd -d databasename

现在我需要在for循环中保留所需的日期并调用单个批处理文件

set bfile =" path \ firstbatchfile.bat" set refile =" path \ 2ndbatchfile.bat" 调用%refile %%% A. FOR / F %% A IN(2ndbatchfileoutput.txt)DO(    调用%bfile %%% A. )

现在我将安排所有主批处理文件。