想象一下人力资源系统和员工评估系统。所有员工都接受一次评估,但员工可能为两个不同的HR工作。我想将这两个合并在一起,但只获得一行员工评估和HR记录。问题是,对于两个系统中的任何员工,您都会得到两行。可以将一个值设置为优先于另一个值吗?如果一个员工在一个系统中工作,那么很明显我们将需要使用该系统。但如果他们在
create table #eval (
employeeid int,
score int
)
insert into #eval
values
(1,5),
(2,3),
(3,4),
(4,4)
create table #hr (
employeeid int,
sourcesystem int
)
insert into #hr
values
(1,1),
(1,2),
(2,1),
(3,2),
(4,3)加入employeeid不符合此标准,但当发生冲突时,我希望sourcesystem = 1胜过sourcesystem = 2或sourcesystem = 3
发布于 2018-01-23 06:15:49
如果希望源1作为结果,则使用MIN;如果希望源3或更高的值,则使用MAX
select
e.employeeid,
min(h.sourcesystem) minsourcesystem
from #eval e
inner join #hr h
on e.employeeid = h.employeeid
group by e.employeeid
employeeid minsourcesystem
----------- ---------------
1 1
2 1
3 2
4 3https://stackoverflow.com/questions/48391091
复制相似问题