Wesley1996
Wesley1996
采纳率0%
2017-03-27 09:03 阅读 1.1k

这是一道sql题,公司给我做,但是我越做越觉得奇怪,求大神帮忙看一下

有一个公司,每天能接到来自各个城市的报修请求,工程师接到报修请求后,会上门服务。
要求通过一句SQL,取出所有符合某一天在某个城市某个工程师的报修工单量超过3条的记录,
具体返回的字段要求为: 城市名,工程师名,该工程师当天的报修工单
城市表
City( city_ID Char(6),
City_name varchar(20))
报修记录表
Ticket(
Ticket_id Char(6),
City_id char(6),
Handle_by char(6), 工程师ID
work_date date)
工程师表
Worker(
Worker_id char(6), 工程师ID
WorkName varchar(10))

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

3条回答 默认 最新

  • Wesley1996 Wesley1996 2017-03-27 09:14

    急 在线等!拜托了,各位大佬

    点赞 评论 复制链接分享
  • jzja123 jzja123 2017-03-27 09:33

    select c.City_name ,t.WorkName,a.ticket_num from (
    select City_id,Handle_by,work_date,count(1) ticket_num from Ticket group by City_id,Handle_by,work_date having count(1)>3)a,
    City c, Ticket t
    where a.City_id = c.City_id and a.Handle_by = t.Worker_id

    点赞 评论 复制链接分享
  • zhangcm_137 弓长张_ 2017-03-27 09:36

    select c.City_name, w.WorkName, t.* from Ticket t, City c, Worker w
    ,(
    select t.city_ID, t.Handle_by, date_format(t.work_date,'%Y%m%d') as the_day from Ticket t
    group by date_format(t.work_date,'%Y%m%d'), t.city_ID, t.Handle_by
    having count(1) > 3
    ) temp
    where t.City_id=c.city_ID and t.Handle_by=w.Worker_id and t.city_ID=temp.city_ID t.Handle_by=temp.Handle_by and t.date_format(t.work_date,'%Y%m%d')=temp.the_day

    思路反正是这样,可能语法有点小问题,纯记事本手打

    点赞 评论 复制链接分享

相关推荐