2012-04-19 55 views
0

我必须为不同的活动提供计数,其中一些列来自某个表格,但很少有我需要通过加入其他表格。 而在最后一栏我要补充计数 * 5列togather在一个领域 *。请参见下面的我的查询和建议的最好的方式来实现我的结果:)总和解码声明?

SELECT web. OID,web. MARKETING_GROUP, 
    SUM(DECODE(WEB.EVENT_TYPE,5,WEB.ACTIVITY_COUNT,0)) AS DISCUSSIONCOMMENT , 
    SUM(DECODE(WEB.EVENT_TYPE,6,WEB.ACTIVITY_COUNT,0)) AS DISCUSSIONSTART , 
    SUM(DECODE(WEB.EVENT_TYPE,7,WEB.ACTIVITY_COUNT,0)) AS DISCUSSIONVIEW, 
    SUM(case when o.when _clicked is not null then c(*))AS clickcount, 
    **SUM(case when WEB.EVENT_TYPE in(5,6,7,8)then WEB.ACTIVITY_COUNT +c.count(*))as Total** --------- This is where I am getting stuck and confused??? 
    from GMMI_AIR.WEB_ACTIVITY_FCT WEB join GMMI_AIR.COUPON_WEB_ACTIVITY C 
    on WEB.OID_WEB_ACTIVITY_FCT = C.OID_COUPON_WEB_ACTIVITY 

我真的因为连接的表没有命名为activity_count或activity_type,所以查看计数我只能计数(*),但要将所有其他文件添加到一列中,并总结它非常混淆?

任何帮助??/

+0

? – Teja 2012-04-19 02:15:28

回答

1
SELECT web. OID,web. MARKETING_GROUP, 
    SUM(DECODE(WEB.EVENT_TYPE,5,WEB.ACTIVITY_COUNT,0)) AS DISCUSSIONCOMMENT , 
    SUM(DECODE(WEB.EVENT_TYPE,6,WEB.ACTIVITY_COUNT,0)) AS DISCUSSIONSTART , 
    SUM(DECODE(WEB.EVENT_TYPE,7,WEB.ACTIVITY_COUNT,0)) AS DISCUSSIONVIEW, 
    SUM(case when o.when _clicked is not null then c(*))AS clickcount, 
    SUM(case when WEB.EVENT_TYPE in(5,6,7,8)then WEB.ACTIVITY_COUNT END) +c.count(*) as Total 
from GMMI_AIR.WEB_ACTIVITY_FCT WEB join GMMI_AIR.COUPON_WEB_ACTIVITY C 
    on WEB.OID_WEB_ACTIVITY_FCT = C.OID_COUPON_WEB_ACTIVITY 
GROUP BY web. OID,web. MARKETING_GROUP; 
您正在使用哪个数据库