【发布时间】:2016-10-11 22:33:45
【问题描述】:
你能帮我关注吗?
我们有在 SQL Server 上运行的工资单软件。我必须从 SQL Server 更新某些工资单类别,以便它可以反映在软件上。
这是我的 Excel 文件:
Employee Number Payroll Category Rate
------------------------------------------
111111 011 32.21
111111 012 56.23
111111 013 12.52
111111 021 45.21
111112 011 36.21
111112 012 56.23
111112 013 42.54
111112 021 85.21
这些是我的数据库表Masterpaycard中的当前值
Employee Number Payroll Category Rate
-------------------------------------------
111111 011 0.00
111111 012 0.00
111111 013 10.25
111112 011 36.21
111112 012 12.50
111112 013 41.25
111112 021 85.21
因此,如果您看到数据库中不存在以下记录,但存在于.CSV 中,那么我必须插入它。
111111 021 45.21
这里的员工编号和工资单类别是来自 Employee 和 Payroll Category 表的 FK。
所以我的最终结果在数据库中应该是这样的,在前端应该是这样的。
Employee Number Payroll Category Rate
--------------------------------------------
111111 011 32.21
111111 012 56.23
111111 013 12.52
111111 021 45.21
111112 011 36.21
111112 012 56.23
111112 013 42.54
111112 021 85.21
我猜简单来说,如果工资单类别在MASTERPAYCARD 表中匹配,那么只需使用来自.CSV 的值更新类别,如果我们找不到工资类别而不是将其作为该员工的新类别插入并从CSV。
请帮忙。
【问题讨论】:
-
我建议将整个 Excel CSV 按原样加载到保存表中。然后您可以进行一些查询以确定需要插入或更新的确切内容。
-
由于我是 SQL 新手,你能举个例子吗?
-
通过加入查找更新。 SO 不是编码服务。
-
Google
SSIS UPSERT你会找到例子。 -
谢谢狗仔队,让我振作起来。我以您的评论为灵感并解决了问题。我很快就会发布它。
标签: sql-server tsql reporting-services ssis etl