select a,a.b+b.b+c.b b,e,f,g
from a,b,c
where a.a=b.a and a.a=c.a;
from a,b,c
where a.a=b.a and a.a=c.a;
解决方案 »
- c#写的oracle操作类库,里面的方法要返回什么类型的值才能被c++程序使用呢
- record is locked by another user
- ORACLE/SQL查询
- oracle客户端和服务端的问题
- oracle 查询条件的截取
- 两个数据库如何保持数据正确显示
- pl/sql 要将导出的user object 重新添加到新的数据中
- 请问谁知道数据库、例程、用户是什么关系?还有创建一个服务命名就是创建一个例程吗?总之越详细越好:)
- 怎么样实现根据数据库的系统时钟来触发?
- 部门表用 oracle
- 求SQL文:用查询更新表。(UPDATE SET ...FROM ..)MS-SQL SERVER中有
- 多个数据库之间存取数据的难! 有一定难度,大家来探讨一下!
楼上的写法会造成不能得到所有的数据吧这种合并是不是应该用union 来解决?我从来没用过union 我用的数据库是oracle
from a inner join b on a.a=b.a
inner join c on c.a= b.a
是不是应该用left join?
这是我刚看ms jet sql想出来的 不知道对不对其实A B C 都是记录集 这样算的话主键就是a了
由A B C得到的新的记录集 必须包含A B C 中全部的a 而且不能重复
from a,b,c
where a.a=b.a and a.a=c.a
A表如下:
字段: a b e
值: 1 2 3
值: 2 3 4
B表如下:字段: a b f
值: 1 2 4
值: 3 3 3
C表如下:字段: a b g
值: 3 2 4
值: 4 2 2通过一个SQL语句得到如下的记录集
a b e f g
1 4 3 4 0
2 3 4 0 0
3 5 0 3 4
4 2 0 0 2只要能够得到这个记录集 我马上给分
b e f g的默认值都是0
from (
select a.a, a.b , a.e , null f, null g from a
union all
select b.a, b.b , null e , b.f, null g from b
union all
select c.a, c.b , null e , null f, c.g from c
)
group by a;
union all (select a,b, 0 as e, f, 0 as g from B)
union all (select a,b, 0 as e, 0 as f, g from C) group by a;
union all (select a,b, 0 as e, f, 0 as g from B)
union all (select a,b, 0 as e, 0 as f, g from C)) group by a;
我执行返回的:
ORA-01790:表达式必须具有与对应表达式相同的数据类型
是不是因为null f 和b.f的数据类型不一致?
----------- ----------- -----------
1 2 3
2 3 4SQL> select * from B; A B F
----------- ----------- -----------
1 2 4
3 3 3SQL> select * from C; A B G
----------- ----------- -----------
3 2 4
4 2 2SQL> select a, sum(b), sum(e), sum(f),sum(g)
2 from (
3 select a.a, nvl(a.b,0) b,nvl(a.e,0) e,nvl(null,0) f,nvl(null,0) g from a
4 union all
5 select b.a, nvl(b.b,0) b,nvl(null,0) e,nvl(b.f,0) f,nvl(null,0) g from b
6 union all
7 select c.a, nvl(c.b,0) b,nvl(null,0) e,nvl(null,0) f,nvl(c.g,0) g from c
8 )
9 group by a; A SUM(B) SUM(E) SUM(F) SUM(G)
---------- ---------- ---------- ---------- ----------
1 4 3 4 0
2 3 4 0 0
3 5 0 3 4
4 2 0 0 2
from A inner join B on A.a=B.a
inner join C on A.a=C.a