我有两个表a和b
一个值
empid name dep
——————————
1 John tech
2 Sam Sec
3 Jack Dep1
b值
b_id empid dep_move Month
—————————————————
1 3 Dep2 6
2 1 Ff 6
3 1 Dd 7
第8个月的结果
empid name dep
——————————
1 John Ff
1. John Dd
2 Sam Sec
3 Jack Dep2
当在左联接的子查询中使用max并要求第6个月时,我得到a.dep
此示例为我的鳕鱼
Select empid,name,case when b.month<='7' then b.dep_move Else a.dep end as depart
from a Left join
b
on a.empid = b.empid
Group by empid,name,dep,dep_move
Order by empid,name,dep,dep_move
谢谢大家
答案 0 :(得分:0)
如果我理解正确,那么您需要某个月的值。我将在b
表上显示如何执行此操作。您可以加入任何您需要的其他东西:
select b.*
from b
where b.month = (select max(b2.month)
from b b2
where b2.empid = b.empid and
b2.month <= 6
);
您将获得empid
的每一行,该行自特定月份开始有效。