SSIS能实现这个复杂的功能么?

netcup 2009-11-09 08:31:52
这是一个进销存系统。数据库是SQL2008。
要求是,有若干供应商,每个供应商供应的品种不同,以‘生产厂家’这个字段区分。
每个供应商每个月都需要各自的销售明细的EXCEL表格,但是每个供应商的查询期间不同,有的是上个月26日到本月25日,有的是上个月1日到月末最后一天,有的是上个月21日到本月20日。
要求按照上面的日期段查询销售明细,并各自导出到EXCEL。成功后再发送到各自厂家的邮箱里
就是这么个流程,用SSIS做不知道要做几步?那难度大不?
表结构如下:
1\商品资料表:商品编号,商品名称,商品规格,商品产地,单位。
2、销售表:日期,客户编号,客户名称,商品编号,数量,单价,金额
3、EMAIL表:ID,生产厂家,EMAIL,开始日期,结束日期。
...全文
158 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
netcup 2009-11-11
  • 打赏
  • 举报
回复
感谢楼上各位大力支持。
感觉SSIS可深入挖掘的确实很多,很有意思!!打算最近在这个上面好好学习下
hery2002 2009-11-11
  • 打赏
  • 举报
回复
方式1.使用SSIS+JOB方式,
1)使用JOB定期执行SSIS 的PKG.
2) PKG中FOREACH 循环email表取得邮件地址和查询时间,厂商,
3) 根据2)中传入的参数,执行查询语句.
4) 导出为Excel。动态Excel的名称有很多方式,在SQL里面format也可以,在Expression中产生也可以,以脚本任务方式产生也行。任选一种.
5) 调用邮件任务发送邮件.(貌似很久很久以前,通过邮件任务直接这样一个PKG调用包内产生的文件好像有问题,不知道现在解决没有.)

方式2.使用SSRS+subscription方式./实际上也是SSRS+JOB方式.
1)创建以生产厂商,查询时间为参数的报表,
2)创建以数据文件+邮件的subscription,
3)创建存储过程遍历邮件表,取得查询参数的值,修改subscription的定义,运行subscription,产生并发送邮件.
4)创建JOB定期执行3)中的存储过程.
playumen 2009-11-11
  • 打赏
  • 举报
回复
SSRS,SSIS都可以实现
pbsh 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vincentliang 的回复:]
1.做一个FOREACH容器,读出EMAIL表中的数据
2.在FOREACH容器中建数据流任务。
3.在数据流中设置表达式改变数据源的查询条件
4.写入EXCEL目标。。不过好像不能动态改EXCEL文件的名字。。用脚本目标吧,然后发送MAIL一起包在脚本目标里面
[/Quote]

支持vincentliang 的思路
补充一下个人看法:
一个Foreach循环解决问题,如果能先设定好配置表,包含如客户ID,查询条件、语句、Email等情况或在SSIS使用脚本任务动态定义查询,导出到EXCEL后,使用数据库邮件直接发送。
fcuandy 2009-11-10
  • 打赏
  • 举报
回复
可以的, ssis的强大超呼你的想象,呵呵。
netcup 2009-11-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hide1984 的回复:]
1. 这是一个定期要执行的Job(最Job先)。
2. Job执行的时候判断日期,比如说今天是30号,是A供应商需要报表,那么‘生产厂家’这个字段你可以通过这个日期反向得到。
3. 通过存储过程得到过滤了日期和生产厂家的报表。
4. 通过生产厂家名和报表产生日期名产生Excel文件名。
5. 存储过程数据导出到Excel文件。
6. 发邮件。
[/Quote]
SQL2000里我就是这么做的,只是想看下SQL2008里有没有更简便的方法
SSRS难道更适合做这个?
BusyDonkey 2009-11-10
  • 打赏
  • 举报
回复
SSIS的主要功能是整合数据不是发数据
BusyDonkey 2009-11-10
  • 打赏
  • 举报
回复
你这个功能更适合用SSRS来做
Hide1984 2009-11-10
  • 打赏
  • 举报
回复
1. 这是一个定期要执行的Job(最Job先)。
2. Job执行的时候判断日期,比如说今天是30号,是A供应商需要报表,那么‘生产厂家’这个字段你可以通过这个日期反向得到。
3. 通过存储过程得到过滤了日期和生产厂家的报表。
4. 通过生产厂家名和报表产生日期名产生Excel文件名。
5. 存储过程数据导出到Excel文件。
6. 发邮件。
netcup 2009-11-09
  • 打赏
  • 举报
回复
而且过去SQL2000里,服务器还不能上网,只有我的电脑能上网。我还得把EXCEL保存在我的电脑里,然后从我的电脑里发送邮件,很不方便。
现在条件好了。服务器连接外网了。方便多了。
netcup 2009-11-09
  • 打赏
  • 举报
回复
以前我在SQL2000里用存储过程和作业搞的。现在升级成SQL2008了,一直没搞这个。打算用SSIS搞下。
但是SSIS不太懂。在这里先请教下。动态EXCEL名字稍微麻烦一点。
liangCK 2009-11-09
  • 打赏
  • 举报
回复
不复杂.
--小F-- 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 happyflystone 的回复:]
路过
[/Quote]
.
-狙击手- 2009-11-09
  • 打赏
  • 举报
回复
路过
VincentLiang 2009-11-09
  • 打赏
  • 举报
回复
1.做一个FOREACH容器,读出EMAIL表中的数据
2.在FOREACH容器中建数据流任务。
3.在数据流中设置表达式改变数据源的查询条件
4.写入EXCEL目标。。不过好像不能动态改EXCEL文件的名字。。用脚本目标吧,然后发送MAIL一起包在脚本目标里面
netcup 2009-11-09
  • 打赏
  • 举报
回复
日期段我在字段里直接写入SQL语句,可以直接调用。
nalnait 2009-11-09
  • 打赏
  • 举报
回复
可以。关键是你日期段 怎么传进去?文本?

594

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧