HaiLunJieYingYu
海伦街英语
采纳率0%
2016-01-21 00:31 阅读 1.5k

请找出报销次数最多的员工信息,要求不能用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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • sinat_31535993 sinat_31535993 2016-01-21 01:23

    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;

    点赞 1 评论 复制链接分享
  • enpterexpress 把分全给哥 2016-01-21 01:29

    图片说明

    点赞 1 评论 复制链接分享
  • Royal_lr Royal_lr 2016-01-21 01:30

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

    点赞 评论 复制链接分享
  • danielinbiti danielinbiti 2016-01-21 02:19
     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.员工编号
    
    点赞 评论 复制链接分享
  • kkoofire kkoofire 2016-01-28 03:32

    表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

    点赞 评论 复制链接分享

相关推荐