SELECT personalid, 
      MIN(CASE planid WHEN '101' THEN checkdate END) f101, 
      MIN(CASE planid WHEN '151' THEN checkdate END) f151
FROM EPIVPerson
GROUP BY personalid;

解决方案 »

  1.   

    SELECT personalid, min(name) as name,min(brithdate) as brithdate,
          MIN(CASE WHEN planid = '101' THEN checkdate END) f101, 
          MIN(CASE WHEN planid = '151' THEN checkdate END) f151
    FROM EPIVPerson
    GROUP BY personalid;
      

  2.   

    GROUP BY personalid,name,brithdate
      

  3.   

    SELECT personalid, name,brithdate,
          MIN(CASE WHEN planid = '101' THEN checkdate END) f101, 
          MIN(CASE WHEN planid = '151' THEN checkdate END) f151
    FROM EPIVPerson
    GROUP BY personalid,name,brithdate;
      

  4.   

    N_Chow兄的方法搞定了,thank !各位兄弟