sum()嵌套使用的问题,在线等答案

zhuoyue 2011-06-27 03:21:11
现在在做一个oracle数据库向DB2数据库的迁移工作,遇到问题不知道怎么解决,DB2的大侠帮帮忙啊

sql 如下

select
session_id,
substr(LOGIN_TIME,1,14)||'00' TIME_ID,
LOGIN_TIME,
(select max(LOGIN_TIME) from foc_session where USER_ID=t.USER_ID and LOGIN_TIME<t.LOGIN_TIME) LAST_LOGIN_TIME,
0,
DISTRICT_ID,
AGE_ID,
JOB_ID,
ASSETS_ID,
VISIT_FLAG,
SEX_ID,

coalesce(SCREEN_ID,'99'),
ORG_ID,
to_char(to_date(substr(login_time,1,10),'YYYY-MM-DD'),'D')-1 WEEK_ID ,
(select sum(REMAIN_TIME) from FOC_TRAN_MKT_ALL_ACTION where session_id=t.session_id) REMAIN_TIME,
coalesce(BROWSER_ID,'99'),
coalesce(OS_ID,'99'),
EDUCATE_ID,
USER_ID CUST_ID,
sum(COUNTFOCID) COUNT_PV,
sum((select sum(case SESSION_FLOG when '2' then 1 else 0 end) QUIT_FLAG from FOC_TRAN_MKT_ALL_ACTION where session_id=t.session_id)) COUNT_OUTOF
from FOC_TRAN_MKT_ALL_SESSION t
group by
session_id,
LOGIN_TIME,
DISTRICT_ID,
AGE_ID,
JOB_ID,
ASSETS_ID,
VISIT_FLAG,
SEX_ID,
SCREEN_ID,
ORG_ID,
logout_time,
BROWSER_ID,
OS_ID,
EDUCATE_ID,
USER_ID;

报错如下

SQL0112N The operand of the column function "SYSIBM.SUM" includes a column function, a scalar fullselect, or a subquery. SQLSTATE=42607

我知道问题出在

sum((select sum(case SESSION_FLOG when '2' then 1 else 0 end) QUIT_FLAG from FOC_TRAN_MKT_ALL_ACTION where session_id=t.session_id)) COUNT_OUTOF

这一行,但不知道怎么解决,求高手
...全文
496 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwwb 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhuoyue 的回复:]
谢谢LS的,但没看明白你的意思,你是怎样去掉一个SUM() 的?
[/Quote]

from FOC_TRAN_MKT_ALL_SESSION t inner join FOC_TRAN_MKT_ALL_ACTION c on c.session_id=t.session_id

测试一下结果,如果不对,还要修改
zhuoyue 2011-06-27
  • 打赏
  • 举报
回复
谢谢LS的,但没看明白你的意思,你是怎样去掉一个SUM() 的?
wwwwb 2011-06-27
  • 打赏
  • 举报
回复
没有看到记录,试试
...
sum(case SESSION_FLOG when '2 ' then 1 else 0 end)
from FOC_TRAN_MKT_ALL_SESSION t inner join FOC_TRAN_MKT_ALL_ACTION c on c.session_id=t.session_id
...
zhuoyue 2011-06-27
  • 打赏
  • 举报
回复
这段sql 是从oracle 转过来的,DB2貌似不支持sum()的这种嵌套使用,要用什么方法替代啊
zhuoyue 2011-06-27
  • 打赏
  • 举报
回复
在线等DB2 高手出现

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧