SELECT  a.grid_code as  网格区号,a.worker_id  AS 工作ID,b.name AS 姓名  , count(*)  as  采集数量  from  poi_collection a   inner join poi_user b  on a.worker_id=b.worker_id  
where  a.grid_code in(1 , 2 , 3 , 5 , 6 , 31 , 401 , 402) 
AND a.CHECK_RESULT1=1 
AND a.COLLECTION_TIME  >= 2007-1-1  
group by  a.grid_code,a.WORKER_ID 
order by 网格区号,采集数量说明:a.CHECK_RESULT1=1‘不合格 a.CHECK_RESULT1=2  ’合格  a.CHECK_RESULT1=3‘未质检我想要的结果是统计符合where条件的结果,例如统计员工在某些grid_code 内、某段时间的所有不合格的记录,但是我上面的语句是得到的是该员工的在某些grid_code 内、某段时间的所有记录。到底是哪里错了,请大家指点指点。
谢谢!

解决方案 »

  1.   

    select
       a.grid_code as 网格区号
      ,a.worker_id as 工作ID
      ,a.cnts as 采集数量
      ,b.name as 姓名
    from (
      SELECT
         grid_code
        ,worker_id
        ,count(1) as cnts 
      FROM poi_collection
      WHERE a.grid_code in (1,2,3,5,6,31,401,402)
      AND a.CHECK_RESULT1=1
      AND a.COLLECTION_TIME >= 2007-1-1    
    ) as a
    inner join poi_user b on a.worker_id=b.worker_id    
    order by 网格区号,采集数量
      

  2.   

    我按你说的跑了一下,结果提示“unknown cllumn 'a,grid_code'in where clause”
      

  3.   

    sorryselect 
       a.grid_code as 网格区号 
      ,a.worker_id as 工作ID 
      ,a.cnts as 采集数量 
      ,b.name as 姓名 
    from ( 
      SELECT grid_code ,worker_id ,count(1) as cnts 
      FROM poi_collection 
      WHERE grid_code in (1,2,3,5,6,31,401,402) 
      AND CHECK_RESULT1=1  
      AND COLLECTION_TIME >= 2007-1-1 ) as a 
    inner join poi_user b on a.worker_id=b.worker_id 
    order by 网格区号,采集数量
      

  4.   

    是这样的:select
       a.grid_code as 网格区号
      ,a.worker_id as 工作ID
      ,a.cnts as 采集数量
      ,b.name as 姓名
    from (
      SELECT
         grid_code
        ,worker_id
        ,count(1) as cnts 
      FROM poi_collection
      WHERE grid_code in (1,2,3,5,6,31,401,402)
      AND CHECK_RESULT1=1
      AND COLLECTION_TIME >= '2007-1-1'
      GROUP BY
         grid_code
        ,worker_id
    ) as a
    inner join poi_user b on a.worker_id=b.worker_id    
    order by 网格区号,采集数量