如下语句执行是没有问题的
SELECT   staffid, 
         SUM (DECODE (satisfy, '1', 1, 0)) 非常满意,
         SUM (DECODE (satisfy, '2', 1, 0)) 满意,
         SUM (DECODE (satisfy, '3', 1, 0)) 不满意
FROM     temp_test
   WHERE startdate >= '20100401'
GROUP BY staffid但是关联了人员信息表name_info以后,不知道问题出在哪里了,请大侠指教!SELECT   staffid,staff_name, 
         SUM (DECODE (satisfy, '1', 1, 0)) 非常满意,
         SUM (DECODE (satisfy, '2', 1, 0)) 满意,
         SUM (DECODE (satisfy, '3', 1, 0)) 不满意
FROM     temp_test a , name_info b
   WHERE startdate >= '20100401'
         and a.staffid=b.staff_id
GROUP BY staffid说明b表的人员信息表中存在staff_id与staff_name字段。 谢谢大侠了!

解决方案 »

  1.   

    SELECT staffid,staff_name,  
      SUM (DECODE (satisfy, '1', 1, 0)) 非常满意,
      SUM (DECODE (satisfy, '2', 1, 0)) 满意,
      SUM (DECODE (satisfy, '3', 1, 0)) 不满意
    FROM temp_test a , name_info b
      WHERE startdate >= '20100401'
      and a.staffid=b.staff_id
    GROUP BY staffid ,staff_name
      

  2.   

    SELECT a.staffid,b.staff_name,  
      SUM (DECODE (a.satisfy, '1', 1, 0)) 非常满意,
      SUM (DECODE (a.satisfy, '2', 1, 0)) 满意,
      SUM (DECODE (a.satisfy, '3', 1, 0)) 不满意
    FROM temp_test a , name_info b
      WHERE startdate >= '20100401'
      and a.staffid=b.staff_id
    GROUP BY a.staffid ,b.staff_name
      

  3.   

    是的,问题得到解决,谢谢! 同时请问一下,为什么后面group by一定要把b表的staff_name加上才可以呢?