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;
解决方案 »
- 请问,如何配置oracle 10g Transparent Gateway程序连接到DB2 UDB V8.1 for windows数据库?
- 为什么,我的三层结构不能在跨网段上用?
- 一张表必须且只能占用一个段吗?
- 在存储过程中,如何用两个变量计算天数?
- 从excel表中读日期并插入数据库
- recover database using backup control file是什么意思?
- 如何在存储过程中得到一段中文的ascii值 急!!!
- 这样的存储过程在执行到一半时如果忽然有特发事件如断电,前面已经执行的操作会自动取消吗?
- 新手 写不出来了 IF 怎么嵌套啊
- sql 数据库导入数据到 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