Temos duas tabelas que são unidas por número do Seguro Social, mas para este exemplo, eu as alterei para juntar apenas no nome. Uma tabela contém cada venda individual e a outra tabela contém o salário anual do funcionário. Preciso compilar esses dados em uma tabela e atualizar apenas UMA linha da tabela de vendas individuais com o salário anual. Como posso atualizar o menor saleid para cada funcionário?
Abaixo está a amostra 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)
Esta é a minha saída desejada:
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
você poderia tentar algo como:
(assumindo a chave primária de
@Helper
in onempname
+saleid
)Semelhante à resposta de @irimias, mas sem a junção extra:
Testado em rextester.com