3个表:员工表,工资表,月计件统计表员工表:姓名  部门   职工编号工资表:职工编号  基本工资  计件工资  发钱时间月计件统计表: 职工编号  日期   当天计件工资我写了这样一条语句,编译不行,望指正:SELECT a.职工编号 , a.发钱时间 ,a.基本工资, 
   b.姓名 ,b.部门 ,   
   NVL((SELECT SUM(c.当天计件工资) FROM 月计件统计表 c
     WHERE a.职工编号=c.职工编号
     GROUP BY c.职工编号) AS PIECEWORK_SALARY,0)
   
   FROM 工资表 a  RIGHT OUTER JOIN 员工表 b  
     ON ( a.职工编号 = b.职工编号 ) 
    

解决方案 »

  1.   

    NVL((SELECT SUM(c.当天计件工资) FROM 月计件统计表 c
         WHERE a.职工编号=c.职工编号
         GROUP BY c.职工编号) AS PIECEWORK_SALARY,0)在select 中能这样写吗?
      

  2.   

    NVL((SELECT SUM(c.当天计件工资) FROM 月计件统计表 c
         WHERE a.职工编号=c.职工编号
         GROUP BY c.职工编号) AS PIECEWORK_SALARY,0)
    改为:
    (SELECT NVL(SUM(c.当天计件工资),0) FROM 月计件统计表 c
         WHERE a.职工编号=c.职工编号
         GROUP BY c.职工编号) AS PIECEWORK_SALARY试试.
      

  3.   

    子查询的group by都是多余的。 
    (SELECT NVL(SUM(c.当天计件工资),0) FROM 月计件统计表 c
         WHERE a.职工编号=c.职工编号) AS PIECEWORK_SALARY