解决方案 »

  1.   

    额你这个trigger完全木有逻辑嘛用视图就足够了!
      

  2.   

    select 日期,性别,count(*)
    from aa
    group by 日期,性别;
      

  3.   

    不能只是简单的insert吧。我认为需要判断下。
    是不是需要先delete  from   aa
    然后在insert 试试
      

  4.   


      CREATE OR REPLACE TRIGGER ddd
      AFTER INSERT OR UPDATE or delete ON AA
      BEGIN    MERGE INTO BB p    
     USING (SELECT 日期,性别,COUNT(*) 人数  FROM AA GROUP BY 日期,性别) np      
     ON (p.日期 = np.日期 and p.性别=np.性别)    
     WHEN MATCHED THEN     
     UPDATE      
     SET p.人数 = np.人数      
     WHEN NOT MATCHED THEN     
     INSERT      
     VALUES (np.日期, np.性别, np.人数  ) 
      END;试试。好像是这个思路
      

  5.   

    sql语句的问题,你的分组条件太多了
      

  6.   

    你这个没插入aa表一条都触发bb表统计插入啊,所以才这样
      

  7.   

    CREATE OR REPLACE TRIGGER ddd
      AFTER INSERT OR UPDATE or delete ON AA FOR EACH ROW
      BEGIN
        INSERT INTO BB(日期,性别,人数)
        SELECT NEW.日期,NEW.性别,(select COUNT(*) FROM AA where AA.日期 = NEW.日期) FROM DUAL; 
      END;
    看看这样行不
      

  8.   

    上面的触发器逻辑有问题,触发器执行的时候每次都要往里面插入数据记录,导致重复的数据记录很多,
    应该进行更行插入数据操作,用merge,当有重复数据记录的时候进行更新操作,没有记录的时候进行
    插入操作。