ORACLE SQL语句的问题

yuanyebaby 2011-12-13 11:30:55
请问在oracle里面 sql语句可以执行加法操作吗?

语句如下:

1、select count(INFOID) +60 from b_t_READINFO WHERE USERID='3BE043AF21F243C98A9EFF914ADD1230'

2、select decode(sum(FDFS),null,0,sum(FDFS)) s from B_T_ZWCPTJ where YHID='3BE043AF21F243C98A9EFF914ADD1230'

语句1执行后的结果是154,证明可以直接相加。

语句2执行后得到结果5,现在我想把语句1跟语句2整合成一条SQL最后并且得到结果159

帮帮忙吧! 亲
...全文
93 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
programmerxiaocai 2011-12-13
  • 打赏
  • 举报
回复

SELECT
AA.GWBH,
AA.GWMC,
AA.BMID,
BB.ID,
BB.GWID,
BB.YHID,
BB.SFZZ,
CC.USERNAME,
CC.USERID
FROM
IEJU.B_T_GWXX AA
Inner Join IEJU.B_T_GWRY BB ON AA.GWBH = BB.GWID
LEFT Join IEJU.S_USERINFO CC ON BB.YHID = CC.USERID
WHERE BB.SFZZ = 1 AND AA.BMID='C8608CDF88F247E78810C7E9CFADC026'
and CC.USERID=(select sum(t) from
(
select count(INFOID) +60 as t from b_t_READINFO WHERE USERID='3BE043AF21F243C98A9EFF914ADD1230'
union all
select decode(sum(FDFS),null,0,sum(FDFS)) as t from B_T_ZWCPTJ where YHID='3BE043AF21F243C98A9EFF914ADD1230'
)
)


yuanyebaby 2011-12-13
  • 打赏
  • 举报
回复
SELECT
AA.GWBH,
AA.GWMC,
AA.BMID,
BB.ID,
BB.GWID,
BB.YHID,
BB.SFZZ,
CC.USERNAME,
CC.USERID
FROM
IEJU.B_T_GWXX AA
Inner Join IEJU.B_T_GWRY BB ON AA.GWBH = BB.GWID
LEFT Join IEJU.S_USERINFO CC ON BB.YHID = CC.USERID
WHERE BB.SFZZ = 1 AND AA.BMID='C8608CDF88F247E78810C7E9CFADC026'

我在这个查询里面把刚才的那个统计查询加上 where条件等于CC.USERID
programmerxiaocai 2011-12-13
  • 打赏
  • 举报
回复
连接其他表的时候 你把查询出来的结果,作为一个虚表,来进行操作。
andyguan01_2 2011-12-13
  • 打赏
  • 举报
回复
select (select count(INFOID) +60 from b_t_READINFO WHERE USERID='3BE043AF21F243C98A9EFF914ADD1230')+
(select decode(sum(FDFS),null,0,sum(FDFS)) s from B_T_ZWCPTJ where YHID='3BE043AF21F243C98A9EFF914ADD1230') from dual;
yuanyebaby 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 programmerxiaocai 的回复:]

SQL code

select sum(t) from
(
select count(INFOID) +60 as t from b_t_READINFO WHERE USERID='3BE043AF21F243C98A9EFF914ADD1230'
union all
select decode(sum(FDFS),null,0,sum(FDFS)) as t from B_T_ZWCPT……
[/Quote]

如果我还要连接其他的表进行查询呢?
programmerxiaocai 2011-12-13
  • 打赏
  • 举报
回复

select sum(t) from
(
select count(INFOID) +60 as t from b_t_READINFO WHERE USERID='3BE043AF21F243C98A9EFF914ADD1230'
union all
select decode(sum(FDFS),null,0,sum(FDFS)) as t from B_T_ZWCPTJ where YHID='3BE043AF21F243C98A9EFF914ADD1230'
)
yixilan 2011-12-13
  • 打赏
  • 举报
回复
这样就行了:
select to_number(add1.value)+ to_number(add2.value) sumvalue from
(select '154' value from dual) add1,
(select '5' value from dual) add2
yuanyebaby 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yuanyebaby 的回复:]

SELECT
AA.GWBH,
AA.GWMC,
AA.BMID,
BB.ID,
BB.GWID,
BB.YHID,
BB.SFZZ,
CC.USERNAME,
CC.USERID
FROM
IEJU.B_T_GWXX AA
Inner Join IEJU.B_T_GWRY BB ON AA.GWBH = BB.GWID
LEFT Join IEJU.S_USERIN……
[/Quote]

对不起,是我没表达清楚,是我需要把查询出来的 159 当成一个字段放到这个查询里面
SELECT
AA.GWBH,
AA.GWMC,
AA.BMID,
BB.ID,
BB.GWID,
BB.YHID,
BB.SFZZ,
CC.USERNAME,
CC.USERID
FROM
IEJU.B_T_GWXX AA
Inner Join IEJU.B_T_GWRY BB ON AA.GWBH = BB.GWID
LEFT Join IEJU.S_USERINFO CC ON BB.YHID = CC.USERID
WHERE BB.SFZZ = 1 AND AA.BMID='C8608CDF88F247E78810C7E9CFADC026'

----------------------------------------------------------------------------------------

select sum(t) from
(
select count(INFOID) +60 as t from b_t_READINFO WHERE USERID='3BE043AF21F243C98A9EFF914ADD1230'
union all
select decode(sum(FDFS),null,0,sum(FDFS)) as t from B_T_ZWCPTJ where YHID='3BE043AF21F243C98A9EFF914ADD1230'
)这个查询里面的where条件等于上面那个查询里面的CC.USERID

谢谢。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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