select
     a.GRID_CODE  as 网格区号
    ,a.WORKER_ID as 工作id
    ,b.NAME AS 姓名
,a.collection_time  as 开始时间
,(select  collection_time from poi_collection where a.grid_code in (3,2) and  a.WORKER_ID=b.WORKER_ID group by a.grid_code,a.worker_id order by collection_time desc limit 1 ) as 结束时间
    ,COUNT(*) AS 采集数量
FROM poi_collection a
INNER JOIN   poi_user b ON a.WORKER_ID = b.WORKER_ID 
WHERE a.GRID_CODE IN (3,2)
group by 
     a.GRID_CODE
    ,a.WORKER_ID
    ,b.NAMEunion select
     NULL AS GRID_CODE
    ,NULL as WORKER_ID
    ,'总数量' as 姓名
,null as 开始时间
,null as 结束时间
    ,(SELECT COUNT(*) FROM poi_collection  a  WHERE a.GRID_CODE IN (3,2) ) AS 采集数量
FROM poi_collection a
WHERE a.GRID_CODE = 3
AND a.COLLECTION_TIME > '2007-08-01'
group by 
    a. GRID_CODE
    ,a.WORKER_ID我想实现的是按grid_code 、worker_id 查询开始作业时间和最后作业时间,但是,我这样写查出来的结束时间是所有的符合条件的信息里面的最大作业时间。

解决方案 »

  1.   

    楼主把表贴出来看看吧,贴些事例数据和你想要的结果。你只把你的sql写出来,看得人家头晕都不知道你想干嘛的。
      

  2.   

    poi_collection:
    tmp_poi_id GRID_CODE WORKER_ID Xint Yint COLLECTION_TIME CHECK_TIME
    001-124-10-125-40 1 4 125 40 2007-8-1 0:00
    001-124-11-125-40 1 4 125 40 2007-8-1 0:00
    001-124-1-125-38 1 4 125 38 2007-8-1 0:00
    002-132-41-20-59 2 19 20 59 2007-9-6 0:00 2008-2-27 10:21
    002-133-2-33-62 2 19 33 62 2007-9-6 0:00
    002-133-3-31-62 2 19 31 62 2007-9-6 0:00
    3-1180-333-148-77 3 9000 148 77 2007-2-7 0:00
    3-1180-334-149-78 3 9000 149 78 2007-2-7 0:00
    3-1180-335-154-78 3 9000 154 78 2007-2-7 0:00
    3-1180-336-154-76 3 9000 154 76 2007-2-7 0:00
    3-1180-337-150-75 3 9000 150 75 2007-2-7 0:00
    3-1180-338-150-73 3 9000 150 73 2007-2-7 0:00
    3-1180-339-150-72 3 9000 150 72 2007-2-7 0:00
    3-1180-340-154-71 3 9000 154 71 2007-2-7 0:00
    3-1180-341-154-72 3 9000 154 72 2007-2-7 0:00
    3-1180-342-154-74 3 9000 154 74 2007-2-7 0:00
    3-1181-386-176-68 3 9000 176 68 2007-2-7 0:00
    007-205-16-81-87 7 24 81 87 2007-11-5 0:00
    007-205-33-73-78 7 24 73 78 2007-11-5 0:00
    007-205-21-69-80 7 24 69 80 2007-11-5 0:00
    007-205-19-73-80 7 24 73 80 2007-11-5 0:00 poi_userWORKER_ID NAME OP_TYPE JOB_STATUS BEGIN_WORKING_TIME PASSWORD
    4 eee 4 1 123
    5 ss 3 1 123
    6 aa 3 1 123
    7 ee 3 1 123
    13 ee 2 1 123
    14 jj 2 1 123
    15 kk 1 1 123
    16 tt 1 3 123
    17 pp 1 1 123
    18 aaa 1 3 123
    19 vvvv 1 1 123
    20 qqqq 1 1 123
    21 hhh 1 1 123
    22 xxx 1 1 123
    23 zzz 1 3 123
    24 ggg 1 3 123
    4554 1 5 1 2007-1-8 0:00 1
    9000 --离岗-- 5 3 2007-1-9 0:00 123
    9990 --外包-- 1 2 123
    9999 --公网-- 1 2 123
     我想要的结果是:
    网格区号 工作id 姓名 开始时间 结束时间 采集数量
    1 4 sss 2007-8-1 2007-9-1 907
    1 5 dd 2007-10-15 2007-10-25 2246
    1 31 fff 2007-10-30 2007-11-4 318
    2 23 ggg 2007-8-8 2007-8-21 245
    2 35 hhh 2007-7-8 2007-7-21 1
    2 40 jjj 2008-3-3 11:53 2008-3-3 11:53 1
    2 46 kkk 2008-2-25 15:30 2008-2-25 15:30 67
    总数量 3785