员工信息表:
编号,手机,职务
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