select e.alert_id,
                       e.subject,
                       sum( email_format) CLICK_CNT,
                       e.OPEN_CNT,
                  from e,  al
                 where 
                  E.alert_id = AL.alert_id
                 GROUP BY E.ALERT_ID,
                          E.SUBJECT,
                          E.OPEN_CNT
其中
OPENCNT是NUMBER型的 
此SQL会过滤掉一些  E.SUBJECT,  E.OPEN_CNT为空的类型 ( 原来是SUBJECT为空时 就不参与 SUM的计算了)但我想要 E.SUBJECT,  E.OPEN_CNT为空时也要显示出来(E.SUBJECT,  E.OPEN_CNT为空时也要计算CLICK_CNT的值)
可以怎么修改呢 

解决方案 »

  1.   

    -- JUST TRY IT ..
    SELECT E.ALERT_ID, E.SUBJECT, SUM(EMAIL_FORMAT) CLICK_CNT, E.OPEN_CNT,
      FROM E, AL
     WHERE E.ALERT_ID = AL.ALERT_ID
     GROUP BY E.ALERT_ID, NVL(E.SUBJECT,'0'), NVL(E.OPEN_CNT,'0');
      

  2.   

    提示NOT A GROUP BY EXPRESSION
      e.UNIQUE_OPEN_CNT,
      

  3.   

    SELECT E.ALERT_ID, NVL(E.SUBJECT,'0'), SUM(EMAIL_FORMAT) CLICK_CNT, NVL(E.OPEN_CNT,'0'),
      FROM E, AL
     WHERE E.ALERT_ID = AL.ALERT_ID
     GROUP BY E.ALERT_ID, NVL(E.SUBJECT,'0'), NVL(E.OPEN_CNT,'0');
      

  4.   

    来一部分数据 指定一个alert_id的值。
      

  5.   

    你怎么想的是空怎么求和
    还要计算他们啊
    你是要求的想这样的记录的条数吧??用COUNT( email_format) CLICK_CNT,说的不清楚