有A B C三个表
A表:
f1(地区) f2(正式员工数)
红桥区 4
南开区 23
朝阳区 5
----------------
B表
f1(地区) f2(协查人员数)
南开区 16
朝阳区 10
----------------
C表
k1(城市) k2(地区)
天津 红桥区
天津 南开区
北京 朝阳区
-----------------
我想形成以下形式的统计结果
--------------------------------------------------
城市 正式员工数 协查人员数
--------------------------------------------------
天津 27 16
北京 5 10
--------------------------------------------------
请问这个select应该怎样写??
A表:
f1(地区) f2(正式员工数)
红桥区 4
南开区 23
朝阳区 5
----------------
B表
f1(地区) f2(协查人员数)
南开区 16
朝阳区 10
----------------
C表
k1(城市) k2(地区)
天津 红桥区
天津 南开区
北京 朝阳区
-----------------
我想形成以下形式的统计结果
--------------------------------------------------
城市 正式员工数 协查人员数
--------------------------------------------------
天津 27 16
北京 5 10
--------------------------------------------------
请问这个select应该怎样写??
解决方案 »
- linux之sendmail
- ◆用decode如何实现Case when功能◆
- 无意间点击了Session下的kill
- 跪求 oracle 11g dba 中文版手册
- 8张表有共同的列的更新
- 字符集问题
- LINUX下Oracle数据库磁盘规划要注意什么,我们用EVA4400
- 想了半天,还是请教前辈吧!关于存储过程的问题
- 我管理的服务器最近总是出现不能连接到数据库,WEB服务登陆界面出现Database Log In Failed 是什么原因,8i,SUN E250,请教各位大虾
- 请问数据库设计有大家公认的工具吗?还是只是一些规范,用什么都可以
- 触发器自动生成ID后怎么删除?
- 函数使用游标返回数据集并显示的问题~~~
from a,b,c
where c.k2=a.f1(+)
and c.k2=b.f1
group by c.k1
FROM C,A,B
WHERE C.k2 = A.f1 AND C.k2 = B.f1
GROUP BY C.k1
看可不可以
FROM A,B
GROUP BY A.f1
--试一下,是不是这个意思?SELECT a.f1, sum(A.f2) 正式员工数, sum(B.f2) 协查人员数
FROM A, B
WHERE a.f1 = b.f1
GROUP BY a.f1;
SELECT a.f1, sum(A.f2) 正式员工数, sum(B.f2) 协查人员数
FROM A, B
WHERE a.f1 = b.f1(+)
GROUP BY a.f1;
from a,b,c
where c.k2=a.f1(+)
and c.k2=b.f1(+)
group by c.k1
少写个(+)
+表示外联接,写在右边是左连接
select f1 地区 ,sum(f2) 正式员工数 ,sum(f3) 协查人员数
from
(
slect a.f1,a.f2,0 f3
from a
union all
select b.f1,0,b.f2
from b )
group by f1
SELECT A.f1,sum(A.f2) 正式员工数,sum(B.f2) 协查人员数
FROM A,B
GROUP BY A.f1
或者
SELECT a.f1, sum(A.f2) 正式员工数, sum(B.f2) 协查人员数
FROM A, B
WHERE a.f1 = b.f1
GROUP BY a.f1;用a.f1分组的话要是b.f1中出现a.f1没有的地区如“河北区”咋办阿?这样“河北区”就不会被查询出来吧?
select f1 地区 ,sum(f2) 正式员工数 ,sum(f3) 协查人员数
from
(
slect a.f1,a.f2,0 f3
from a
union all
select b.f1,0,b.f2
from b )
group by f1正解:)
感谢hebo2005和大家的帮助