如何在 sql server 2008R2/ssis 中为每个日期导出带有日期时间的单独 excel 表?
Posted
技术标签:
【中文标题】如何在 sql server 2008R2/ssis 中为每个日期导出带有日期时间的单独 excel 表?【英文标题】:How to export separate excel sheet with datetime for each date in sqlserver 2008R2/ssis? 【发布时间】:2015-04-02 15:08:10 【问题描述】:有 2 个表名为 table1
和 table2
。
我需要根据条件导出数据
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 中提供一个示例。
【问题讨论】:
这是一个广泛的话题。你到底坚持了哪一部分? 感谢 Alleman 的回复。我有一个简短的想法,通过使用 while 循环,我们可以实现它,但我无法实现它,所以你能通过以 zip 格式发布 SSIS packgae 来帮助我,以便我可以理解开发的包或代码。 编写一个 SSIS 包,将其压缩并发送给您?那很好笑!试试这个谷歌搜索:“ssis 导出到多个 Excel 工作表”。祝你好运! 亲爱的 Tab Alleman,如果您不知道如何回答,请停止回答某人的问题。你认为这个博客是时光倒流的吗?没有人得到他们问题的答案或指导?请不要让这个网站成为一个争论网站,这对缺乏 IT 专业人士有很大帮助。 此链接有一对不错的教程可以帮助您入门 social.msdn.microsoft.com/Forums/sqlserver/en-US/… ,您的问题对于本网站来说有点过于宽泛,如果您遇到具体问题,请随时提出另一个问题。请阅读***.com/help/how-to-ask,以便您更好地了解社区的期望。 【参考方案1】:先准备好需要的sql查询结果,做成批处理文件
@Echo 关闭 设置日期键=%1
bcp "SELECT col1,'""' + ISNULL(col2,'') FROM tbalename WHERE DATE_KEY = %datekey%" queryout path _%datekey%.csv -c -t, -r\n -S "servername " -U 用户名 -P pwd -d 数据库名
现在我们需要使用 tablename_date.csv /.xlsx 单独创建 excel 文件
为此,我已经生成了带有所需日期的 exell 表
bcp "select distinct date from table" queryout path\filename.csv -c -t, -r\n -S "servername" -U username -P pwd -d databasename
现在我需要在 for 循环中保留所需的日期并调用两个单独的批处理文件
设置 bfile="路径\firstbatchfile.bat" 设置 refile="路径\2ndbatchfile.bat" 调用 %refile% %%A FOR /F %%A IN (2ndbatchfileoutput.txt) DO ( 调用 %bfile% %%A )
现在我将安排所有的主要批处理文件。
【讨论】:
以上是关于如何在 sql server 2008R2/ssis 中为每个日期导出带有日期时间的单独 excel 表?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server 2014 中从 SQL Server 2008 R2 恢复备份?
在sql server 2008中如何查询本日、本周和本月数据
如何使用 SQL Server Management Studio (2008) 在 SQL Server Compact Edition 中创建列
如何将所有数据库(快速)自 sql server 2008 express 传递到 sql server 2008 R2(无 express)