重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
select decode(L.A, 1, M.A, 0),
创新互联致力于互联网品牌建设与网络营销,包括网站建设、成都网站制作、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联核心团队10年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。
decode(L.B, 1, M.B, 0),
decode(L.C, 1, M.C, 0),
decode(L.D, 1, M.D, 0)
from (select sum(decode(A, -1, 1, 0)) A,
sum(decode(B, -1, 1, 0)) B,
sum(decode(C, -1, 1, 0)) C,
sum(decode(D, -1, 1, 0)) D
from G) L,
(select max(A) A, max(B) B, max(C) C, max(D) D from g) M
把这个表先看成两个表一个是没条件出来的最大值,一个是看有没有负一这个值如果有则是求出来的最大值就OK。
开始你没列出表结构来我就自己写的呵呵,希望给分。这个写法没问题。
select sum(A) from 表名; 这个语句,要达到你们目的,除非你这个表中只有这三行数据。
楼主说的相加是指数值类型的相加还是指合并结果集?如果是数值类型的列相加只需要把两张表用合适的关联条件关联起来进行查询,列相加即可;如果是合并结果集需要注意列顺序,子查询对应列的类型必须要一致,用UNION 或UNION ALL关键字。
select (列名1+列名2+列名3+・・・列名N) AS 列和 from 表名;
这样写试一下,看看是否好用。
oracle中行求和直接用加法即可。
test表数据如下:
如果将maths、chinese、english列的分数求和,可用如下语句:
select id,name,maths,chinese,english,maths+chinese+english as sumscore from test;
结果:
select B.AA, B.BB, C.CC
from
(select 表1.AA, sum(表1.BB) cntBB from 表1 group by 表1.AA) B,
(select 表2.AA, sum(表2.CC) cntCC from 表2 group by 表2.AA) C
where B.AA=C.AA
and B.cntBB C.cntCC