请找出报销次数最多的员工信息,要求不能用IN。

员工信息表:

编号,手机,职务

A1,13609081861,PM

A2,13609081234,AM

A3,13609123456,GM

A6,12345678990,CIO

A7,12341343542,CTO

A8,12324532334,FIO

报销信息表:

员工编号,报销金额,备注(允许为NULL)

A1,1800

A2,800

A3,800

A3,1500

A3,600

A6 3000

A7,1800

select max(t.count) ,t.* from (select count(a.员工编号) count,a.员工编号,b.手机,b.职务 from 报销信息表 a left join 员工信息表 b on a.员工编号=b.员工编号 group by a.员工编号,b.手机,b.职务) t;

图片说明

报销次数最多也就是报销金额最多,,找到报销金额最多的就行了

 select A.* FROM (
SELECT DISTINCT 员工编号 as 员工编号 FROM (
SELECT t.*,MAX(cn) over(partition by r) MX from (
SELECT '1' r ,t.* ,count(*) over(partition by 员工编号) cn from 报销信息表 t
) t 
) T WHERE MX = CN
) B left join 员工信息表 A on 员工信息表.编号=B.员工编号

表a:员工信息表
表b:报销信息表
;WITH x AS (SELECT id,COUNT(id) cnt FROM b GROUP BY id)
SELECT a.* FROM a INNER JOIN (SELECT x.id FROM x WHERE x.cnt=(SELECT MAX(cnt) FROM x)) y ON a.id=y.id