你能帮我跟进吗?
我们有在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
的值类别,如果我们找不到Payrollcategory而不是将其作为该员工的新类别插入也可以从CSV中添加值。
请帮忙。
答案 0 :(得分:1)
这是您需要采取的方法......
create table #Table1 (
id int,
value varchar(10)
)
create table #Table2 (
id int,
value varchar(10)
)
insert into #Table1 values (1, 'AAA')
insert into #Table1 values (2, 'BBB')
insert into #Table2 values (1, 'ZZZ')
insert into #Table2 values (3, 'CCC')
select * from #Table1
select * from #Table2
--insert data from Table2 into Table1 if it doesn't already exist in Table1
insert into #Table1
select #Table2.* from #Table2
left join #Table1 on #Table2.id = #Table1.id
where #Table1.id is null
--update data in Table1 from Table2 if it does already exist in Table1
update #Table1 set value = #Table2.value
from #Table2
left join #Table1 on #Table2.id = #Table1.id
where #Table1.id is not null
select * from #Table1