一步一步学SQL Server BI 4:合并数据3

 &">nbsp; 我们已经介绍了三种方法来实现数据流源和数据库数据的合并,也就是Excel中的数据和数据库里面的数据进行同步,存在的数据进行更新操作,不存在的添加数据,另外还可以扩展为,如果数据库为的数据在Excel数据源中不存在,则执行删除操作.接下来我们来介绍其它的方法来实现这样的目标.

  我们在合并数据1中曾经介绍过,直接通过Merge和Merge Jone是无法直接实现的,不过我们可以通过变通的方法实现.首先我们新建一个包MergeDataMerge,像之前一样,象上次一样,准备控制流,变量和连接管理器.其实前面和合并数据1中的MergeData2一样,将Excel数据源和数据库表数据根据ProductNumber字段进行合并.

  

  这里我们选的是完全外部连接,这样才能完全合并两边的数据.当一方数据没有匹配的数据时,有NULL代替.所以我们直接根据合并后的ProductNumber和NewProductNumber 就可以直接这行数据应该对应的是添加,更新,还是删除.在Merge Join组件下面,我们添加Conditional Split组件,这个组件来判断对于不同的情况的分支:

  

  很简单,当行中对应的ProductNumber为NULL时,说明没有从数据库时面查到匹配的数据,所以这条数据应该进行新增操作,当NewProductNumber为NULL时,说明Excel数据源中不存在数据库中ProductNumber对应的数据,所以此条数据应该进行删除,最后,如果两个ProductNumber相同,则应该进行更新操作.这里需要注意的是,一定要把两个判断ISNULL的条件放在前面,因为我们在第三个里面用到了TRIM,如果为NULL值时,会有错误发生.

  

时间: 2024-09-23 17:36:02

一步一步学SQL Server BI 4:合并数据3的相关文章

一步一步学SQL Server BI 1:基础知识

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; SQL Server 2005 和2008提供了很多新的和增强的商务智能功能,包括利用集成服务(SSIS)整合多种数据源;利用分析服务(SSAS)使数据内容更丰富并且建立复杂的商业分析; 以及利用报表服务(SSRS)编辑,管理,和提交丰富的报表. 如果你现在还不清楚这些功能,那么接下来一系列的介绍会让你对SQL Server现在的商务智能支持大吃一惊.不过现在关于S

一步一步学SQL Server BI 4:合并数据2

上次我们并没有实现http://www.aliyun.com/zixun/aggregation/16544.html">Excel中的数据与数据库中的数据进行整合,存在即更新,不存在即插入.这次主要介绍几种方法来实现: 1.使用Lookup 2.使用execute SQL task调用存储过程 3.使用script component脚本实现 4.使用MERGE 语句(SQL SERVER 2008) 5.使用上次我们用到的Merge来实现 6.使用第三方组件SCD Component

一步一步学SQL Server BI 2:SSIS进行简单的数据导入导出

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 让我们首先开始学习SSIS吧,利用SSIS把SQL Server中的数据导出.首先,打开Vs.net 2005,选择商业智能项目,然后选择模板中的Integration Service项目,输入项目名称: 创建好后,我们就在默认的Package包中进行设计(关于一些概念性的就不介绍了,请参照这个文章, 或者是其它的教程或者书籍).首先向控制流中添加一个数据流组件(D

一步一步学SQL Server BI 5:通过Email发送查询结果

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 忙了一段,终于有时间来完成这一系列了.sql server 2008正式版已经发布了,接下来的系列都将基于sql server 2008+vs.net 2008开发. 在一个B2B项目中遇到这样的一个情况,每天老板都想看到所有的新的订单信息,而这个老板很懒,不想登录系统后台,而是想通过查看邮件的方式.当然实现方式很多,这里我们介绍一个怎么使用SSIS包来实现这样的一

一步一步学SQL Server BI 7:事务,错误输出,事件处理,日志记录

和其它程序一样,SSIS包同样需要健壮,稳定的运行,这样的程序才有可靠性和可伸缩性.SSIS提供了如下方面的支持: 1.事务: 可以对一个程序包设置成一个或者多个事务,甚至可以对两个程序包设置成一个事务.为了保证数据的一致性,你还可以DTC事务或者SQL Server引擎级的事务. 2.检查点: 用来记录一个程序包出错时任务的运行情况,以便程序包再次启动时,直接从发生错误的任务直接执行. 3.错误输出:即使再完美的程序也会有错误,尤其对于数据流中的任务来说,及有可能由于格式,类型等问题,导致这一

SQL Server BI Step by Step SSIS 7 (End)

SQL Server BI Step by Step SSIS 7 (End) - 事务,错误输出,事件处理,日志记录 和其它程序一样,SSIS包同样需要健壮,稳定的运行,这样的程序才有可靠性和可伸缩性.SSIS提供了如下方面的支持: 1.事务: 可以对一个程序包设置成一个或者多个事务,甚至可以对两个程序包设置成一个事务.为了 保证数据的一致性,你还可以DTC事务或者SQL Server引擎级的事务. 2.检查点: 用来记录一个程序包出错时任务的运行情况,以便程序包再次启动时,直接从发生错误的

SQL Server BI Step by Step SSRS 1-Reporting Service 2008的新特性

今天我们开始SQL SERVER BI的另外一个重要的部分 --Reporting Service,相对于Integration Service和Analysis Service,Reporing Service在国内的使用者应该多很多.一方面由于Reporing Service费用比较低,直接附属在SQL SERVER中,另外一方面其实SSRS在很大程度上还是满足我们的报表 需求的. 在SQL Server 2008中,SSRS更是在很多方面都有所加强,"如果微软在2008的BI中投入了10美

SQL Server BI Step by Step 1

SQL Server 2005和2008提供了很多新的和增强的商务智能功能,包括利用集成服务(SSIS)整合多种 数据源;利用分析服务(SSAS)使数据内容更丰富并且建立复杂的商业分析; 以及利用报表服务(SSRS)编辑 ,管理,和提交丰富的报表. 如果你现在还不清楚这些功能,那么接下来一系列的介绍会让你对SQL Server 现在的商务智能支持大吃一惊.不过现在关于SQL Server商务智能(SQL Server Business Intelligence - BI)的中文资料相对较少,很多

[Python]Python/PHP如何查询sql server中NTEXT类型数据

[Python]Python/PHP如何查询sql server中NTEXT类型数据 Version Date Creator Description 1.0.0.1 2006-11-23 郑昀 草稿   继续阅读之前,我们假设您熟悉以下知识: n         Python / PHP n         SQL Server 2000 SP4以上版本的Microsoft sql server n         pymssql n         NTEXT类型 本文讨论了在Python中