求助,一个简单的查询——新贴

zxwl 2005-08-18 11:50:53
问题基本解决 ,谢谢!结贴

另外:
假如表结构如下:
表名:tb
id status time
100 0 xxx
100 1 xxx
101 1 xxx
100 1 xxx
101 1 xxx
100 1 xxx
select语句如下:
select b.id,a.状态为零数,b.总数 from
(select id ,count (*) as 状态为零数 from tb where status =0 group by id) a,
(select id ,count (*) as 总数 from tb where status =0 group by id) b
where a.id(+)=b.id

第一句的结果是:
id count(*)
100 1
(注:101的没有!!)
第二句的结果是:
id count(*)
100 4
101 2

因为第一句查询结果中,没有101的记录!!
所以结果会是只有一行:
id 状态为零数 总数
100 1 4

但是现在想构造如下的查询结果,怎么实现那:
id 状态为零数 总数
100 1 4
101 0 2




实际问题中,我是有5种select语句。
id值100-116
用这种发法,每一种select出来的数目并不完全一样。
怎么保证
结果像
id 状态为零数 总数
100 1 4
101 0 2







即,第二行101 的结果状态为零列 置成 0,怎么实现那
...全文
99 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxwl 2005-08-19
  • 打赏
  • 举报
回复
多谢各位,我一个新手又学到了新技巧。
结贴~~~~~~~~~~~``
沝林 2005-08-19
  • 打赏
  • 举报
回复
这样不就可以了,为什么要那么多子查询?

select id,sum(decode(status,0,1,0)) as 状态为零数,count(*) as 总数
from t group by id
zhpsam109 2005-08-19
  • 打赏
  • 举报
回复
楼上的太迅速了!精神值得学习啊!
bzszp 2005-08-19
  • 打赏
  • 举报
回复
select t.id,a.状态为零数,b.总数 from
(select distinct id from tb) t
(select id ,count (*) as 状态为零数 from tb where status =0 group by id) a,
(select id ,count (*) as 总数 from tb where status =0 group by id) b
where t.id=a.id(+) and t.id=b.id(+);

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧