SELECT
  RENYB.RENYBH  ,
  RENYB.XINGM ,
  100+sum (RYJCB.FENS) ,
  JCMXB.KAOHYF 
FROM
  RENYB,//人员表
  RYJCB,//人员奖惩表
  JCMXB //奖惩明细表
WHERE
  RENYB.RENYBH = RYJCB.RENYBH(+) AND
  JCMXB.JIANGCBH = RYJCB.JIANGCBH AND
  JCMXB.KAOHYF = 200306
GROUP BY
  RENYB.RENYBH,
  RENYB.XINGM,
  JCMXB.KAOHYF
想实现的功能 统计人员表中每个人200306月的量化得分 基分是100分 加上人员奖惩
表的量化分,得出每个人得量化分
出现得问题 
  如果人员奖惩表中没有此人该月得奖惩记录 统计结果就没有这个人得   
  我得后台用得是Orcale 好像不支持union操作

解决方案 »

  1.   

    SELECT
      RENYB.RENYBH  ,
      RENYB.XINGM ,
      100+sum (RYJCB.FENS) ,
      JCMXB.KAOHYF 
    FROM
      RENYB
    left join RYJCB on RENYB.RENYBH = RYJCB.RENYBH
    left join JCMXB on JCMXB.JIANGCBH = RYJCB.JIANGCBH AND
      JCMXB.KAOHYF = 200306
    GROUP BY
      RENYB.RENYBH,
      RENYB.XINGM,
      JCMXB.KAOHYF
      

  2.   

    up
    用外联就行了(如果不清楚可以看看help,什么左外联、右外联)
      

  3.   

    运行时提示 SQL[7,8],invald table name 怎么办啊 我得后台是Oraclea
      

  4.   

    SELECT
      RENYB.RENYBH  ,
      RENYB.XINGM ,
      100+sum (RYJCB.FENS) ,
      JCMXB.KAOHYF 
    FROM
      RENYB,//人员表
      RYJCB,//人员奖惩表
      JCMXB //奖惩明细表
    WHERE
      RENYB.RENYBH = RYJCB.RENYBH (+) AND
      JCMXB.JIANGCBH (+) = RYJCB.JIANGCBH AND
      JCMXB.KAOHYF = 200306
    GROUP BY
      RENYB.RENYBH,
      RENYB.XINGM,
      JCMXB.KAOHYF
    少了一个(+)
      

  5.   

    heixiu1980(迷茫ing)
    我试了你的方法 还是只显示6月人员奖惩表里有的人的记录 
    不过很感谢你的热心帮助 分全给你 希望得到你得进一步帮助
      

  6.   

    SELECT
      RENYB.RENYBH  ,
      RENYB.XINGM ,
      100+sum (RYJCB.FENS) ,
      JCMXB.KAOHYF 
    FROM
      RENYB,//人员表
      RYJCB,//人员奖惩表
      JCMXB //奖惩明细表
    WHERE
      RENYB.RENYBH = RYJCB.RENYBH (+) AND
      JCMXB.JIANGCBH (+) = RYJCB.JIANGCBH AND
      JCMXB.KAOHYF (+) = 200306
    GROUP BY
      RENYB.RENYBH,
      RENYB.XINGM,
      JCMXB.KAOHYF
    再加个(+)试试