如果是空值又怎么办?
上面的语句我是写在触发器中的
create or replace trigger a_lldd_Trigger
before insert on a_lldd
for each row
declare
  pragma autonomous_transaction;
  cnt number;
begin
  cnt:=0;
  select distinct b.dj into cnt from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=:new.wzlsh 
  and a.jssj=(select max(jssj) from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=:new.wzlsh);
  :new.dj:=cnt;
end;

解决方案 »

  1.   

    最后一条记录
    select max(id), dj
    from (select rownum id, distinct b.dj  from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729
      and a.jssj=(select max(jssj) from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729))如果求平均数怎么做?
    不太懂,什么意思?
      

  2.   

    To:Eric_1999(╙@^@╜) 你的查询语句不对啊
      

  3.   

    这样子。
    select max(id), dj
    from (
    select rownum id, dj
    from (select distinct b.dj  from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729
      and a.jssj=(select max(jssj) from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729)))
    平均数
    select avg(dj)
    from (
    from (select distinct b.dj  from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729
      and a.jssj=(select max(jssj) from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729)))
      

  4.   

    To:Eric_1999(╙@^@╜)
    select max(id), dj
    from (
    select rownum id, dj
    from (select distinct b.dj  from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729
      and a.jssj=(select max(jssj) from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729)))
    这个语句出错。错误是ORA-00937:非单组分组函数
      

  5.   

    这样可以了8SELECT *
    FROM (select distinct b.dj  from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729
      and a.jssj=(select max(jssj) from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729)
      )
    WHERE ROWNUM = SELECT MAX(ID)
    FROM (
    SELECT ROWNUM ID DJ
    FROM (
    select distinct b.dj  from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729
      and a.jssj=(select max(jssj) from a_rkdt a,a_rkdd b where a.lsh=b.rkdtlsh and wzlsh=13729)
      )
      )
      

  6.   

    还是不行,不过我想在触发器中这样进行运算对不对?
    :new.je:=new.sls * cnt;
      

  7.   

    你想干什么?为什么要修改:new.je?
    你可以在update时直接 update 这个 :new.sls * cnt