请教一条统计相关的SQL语句

HITZXL 2004-06-10 04:26:20
现在有一个表t_info,t_org
t_info

i_id |org_id |i_flag
1 |2 |0
2 |2 |0
3 |2 |0
4 |2 |1
5 |2 |1
6 |2 |1

t_org

org_id |org_name
1 |秘书处
2 |厂长室
3 |经理部
4 |电脑部
5 |财务部

t_org的外键是t_info.org_id,通过以上两个表,我希望能得到
org_name|flag0|flag1
秘书处 | |
厂长室 |3 |3
经理部 | |
电脑部 | |
财务部 | |

flag0表示i_flag=0时的行数,flag0表示i_flag=1时的行数!
请各位指点迷津,感激涕零!
...全文
113 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
welyngj 2004-06-11
  • 打赏
  • 举报
回复
select org_name ,flag0,flag1
from
(select org_id,sum(decode(org_id,0,1)) flag0,
sum(decode(org_id,1,1)) flag1 from t_info
group by org_id
) t ,t_org
where t_org.org_id=t.org_id(+)
comcn 2004-06-11
  • 打赏
  • 举报
回复
to welyngj(平平淡淡)
我运行
select org_name ,flag0,flag1
from
(select org_id,sum(decode(org_id,0,1)) flag0,
sum(decode(org_id,1,1)) flag1 from t_info
group by org_id
) t left join t_org
**
on t_org.org_id=t.org_id

时,提示我 933错误 sql command not propeyly ended
星号打在 t left 的前边
我的也是oracle8I啊
HITZXL 2004-06-10
  • 打赏
  • 举报
回复
太谢谢你了,送你分!
welyngj 2004-06-10
  • 打赏
  • 举报
回复
这次应该正确了
select org_name ,nvl(flag0,0) flag0,nvl(flag1,0) flag1
from
(select org_id,sum(decode(org_id,0,1,0)) flag0,
sum(decode(org_id,1,1,0)) flag1 from t_info
group by org_id
) t right join t_org
on t_org.org_id=t.org_id
welyngj 2004-06-10
  • 打赏
  • 举报
回复
select org_name ,flag0,flag1
from
(select org_id,sum(decode(org_id,0,1,0)) flag0,
sum(decode(org_id,1,1,0)) flag1 from t_info
group by org_id
) t right join t_org
on t_org.org_id=t.org_id
HITZXL 2004-06-10
  • 打赏
  • 举报
回复
to:welyngj(平平淡淡)
我按照你的sql语句,可以得到
org_name |flag0|flag1
厂长室 |3 |3

其他空的还是得不到呀。
welyngj 2004-06-10
  • 打赏
  • 举报
回复
select org_name ,flag0,flag1
from
(select org_id,sum(decode(org_id,0,1)) flag0,
sum(decode(org_id,1,1)) flag1 from t_info
group by org_id
) t left join t_org
on t_org.org_id=t.org_id

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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