我们有两个在社会保险号上连接的表,但为了这个例子,我将其更改为仅在名称上连接。一张表保存每个人的销售额,另一张表保存员工的年薪。我需要将这些数据编译到一个表中,并且只用年薪更新个人销售表中的一行。如何更新每个员工的最小 saleid?
以下是示例 DDL:
Declare @Helper Table (empname varchar(50), saleid int, sal float)
Declare @Helper1 Table (empname varchar(50), sal float)
Insert Into @Helper (empname, saleid) Values
('Number One', 818181),
('Number One', 19213),
('Number One', 919131),
('Number One', 131311313)
,('Number Two', 131313),
('Number Two', 9823),
('Number Two', 24)
Insert Into @Helper1 (empname, sal) Values
('Number One', 44000.00), ('Number Two', 55000.00)
这是我想要的输出:
empname saleid sal
Number One 19213 44000
Number One 818181
Number One 919131
Number One 131311313
Number Two 24 55000
Number Two 9823
Number Two 131313
你可以尝试这样的事情:
(假设主键
@Helper
在empname
+上saleid
)类似于@irimias 的回答,但没有额外的连接:
在rextester.com测试