CREATE TABLE b(
id CHAR(20),
name VARCHAR(1000)
)CREATE TABLE a
(
id CHAR(20),
name VARCHAR(1000),
ynpro CHAR(1),
fid CHAR(20)
)a-----
id name
1 test1
2 test2
b----
id name ynpro fid
1 a1 1 1
2 a2 0 2
3 a3 1 1
4 a4 0 1
5 a5 1 2a id 与 b fid 关联结果
id name ynpro=1 ynpro=0
1 test1 2 1
2 test2 1 1
id CHAR(20),
name VARCHAR(1000)
)CREATE TABLE a
(
id CHAR(20),
name VARCHAR(1000),
ynpro CHAR(1),
fid CHAR(20)
)a-----
id name
1 test1
2 test2
b----
id name ynpro fid
1 a1 1 1
2 a2 0 2
3 a3 1 1
4 a4 0 1
5 a5 1 2a id 与 b fid 关联结果
id name ynpro=1 ynpro=0
1 test1 2 1
2 test2 1 1
解决方案 »
- 建模问题,大家都来看看吧
- 求一条SQL
- 这两个版本有什么不同
- 请大家推荐关于数据库设计资料
- 各位我想實現如下功能,即在一個表的TRIGGER中改動自己的記錄,SQL SERVER是可以的,可是ORACLE不行,報ORA-04091的錯,請問該如何解決???
- 请问怎样导出oracle数据结构或数据结构脚本
- 怎么删除索引啊?高分相送!在线等候!
- 高手们,救命啊(Redhat Linux 8.0 下如何安装 Oracle 8.1.7)
- 急问:为什么建不了视图?在线等,万分急!!!谢谢大家!!!!!!!!!!
- oracle查询商品销售金额 分ABC类商品
- 求救:存储过程循环查表数据插入表值都累加在最后了
- 程序退出时(或者被强行退出),如何终止所有运行中的线程
自己搜索下就能学会的
BTW,10分能叫高分吗?不过你这问题实在是不难
sum(case when b.ynpro = 1 then 1 end),
sum(case when b.ynpro = 0 then 1 end)
from a,b
where a.id = b.fid
group by a.id, a.name;
sum(case when b.ynpro = 1 then 1 end),
sum(case when b.ynpro = 0 then 1 end)
from ansol.tab_anode b,ansol.tab_acompany a
where a.id = b.fid
group by a.id, a.name;
结果是1 ssh 1 2
2 oa 2 **想显示为0能不能用子查讯和表连接做一下
from a,b where a.id = b.fid
group by a.id,a.name;
id name ynpro=1 ynpro=0
1 test1 2 1
2 test2 1 1
不是用decode
nvl(sum(case when b.ynpro = 1 then 1 end), 0),
nvl(sum(case when b.ynpro = 0 then 1 end), 0)
from a,b
where a.id = b.fid
group by a.id, a.name;
(select nvl(count(b.ynpro),0) from b where b.ynpro = 1 and b.fid = a.id),
(select nvl(count(b.ynpro),0) from b where b.ynpro = 0 and b.fid = a.id)
from a;