有三个表结构如下:op_log(日志表) 表结构
USERID VARCHAR2(50)
USERNAME VARCHAR2(100)op_access(用户表) 表结构
USERID VARCHAR2(30)
DEPARTMENT VARCHAR2(30)dept_c(部门表) 表结构
DEP_NO VARCHAR2(30)
DEPARTMENT VARCHAR2(30)说明:
1,op_log表中的userid和op_access表中的userid对应
2,op_access表中的DEPARTMENT和dept_c表中的DEP_NO对应
3,op_log表中的username的值为'移动用户'或者非移动用户即WEB方式(要么等于'移动用户',要么不等于)要求:
通过SQL语句产生如下结果:(Oracle8i) WEB方式 移动方式
部门名称1 统计值 统计值
部门名称2 统计值 统计值
部门名称3 统计值 统计值
... 统计值 统计值
部门名称n 统计值 统计值其中的部门名称是dept_c表中的字段DEPARTMENT
USERID VARCHAR2(50)
USERNAME VARCHAR2(100)op_access(用户表) 表结构
USERID VARCHAR2(30)
DEPARTMENT VARCHAR2(30)dept_c(部门表) 表结构
DEP_NO VARCHAR2(30)
DEPARTMENT VARCHAR2(30)说明:
1,op_log表中的userid和op_access表中的userid对应
2,op_access表中的DEPARTMENT和dept_c表中的DEP_NO对应
3,op_log表中的username的值为'移动用户'或者非移动用户即WEB方式(要么等于'移动用户',要么不等于)要求:
通过SQL语句产生如下结果:(Oracle8i) WEB方式 移动方式
部门名称1 统计值 统计值
部门名称2 统计值 统计值
部门名称3 统计值 统计值
... 统计值 统计值
部门名称n 统计值 统计值其中的部门名称是dept_c表中的字段DEPARTMENT
解决方案 »
- ORA-04091: 表 发生了变化, 触发器/函数不能读它
- 我想学习oracle ebs 还有BIEE,大家给点意见或好的文档啊~???
- 用delphi中的TSQLconnection连接oracle
- 无法加载 DLL“OraOps9.dll”: 找不到指定的模块
- oraclehome90agent服务
- 关于pl/sql的一个查询问题
- 求助表结构设计问题!
- 怎么不能删除了?(在线等待 急!)
- 字符串连接问题,请教大牛!!!
- 求Oracle Internet Application Server的配置手册(现在就要)
- 100分 绝顶高手请进:“Lock”相关的怪问题(ORA9i设置)
- 用sqlserver2000将oracle的表空间直接导入到sqlserver 中
sum(decode(op_log.user_name,'WEB方式',1,0)) WEB方式,
sum(decode(op_log.user_name,'移动方式',1,0)) 移动方式
from op_access,dept_c,op_log
where op_access.DEPARTMENT and dept_c.DEP_NO
op_access.USERID = op_log.USERID
group by dept_c.DEPARTMENTIt is just for your reference , I believe you can get some idea in the above sql (especially the usage of decode function ) and be able to write your own perfect query .
thank you very much.up!
( select c.department,count(a.username) count1,a.username from op_log a,op_access b,dept_c c where a.userid = b.userid and c.dept_no = b.department group by c.department,a.username ) d
,(select c.department,count(a.username) count1,a.username from op_log a,op_access b,dept_c c where a.userid = b.userid and c.dept_no = b.department group by c.department,a.username ) e
where d.username = 'web' and e.username = 'mobile' and d.department = e.departmentd 和e 分别为相同部门的web 和mobile方式的总量.black_snail(●男人要忍○) 的SQL是把web 和mobile先翻译为01 之后再对他们进行统计.
select c.department,count(a.userid),sum(decode(a.username,'移动用户',1,0)),sum(decode(a.username,移动用户'',0,1))
from op_log a,op_access b,dept_c c
where a.userid=b.userid and b.department=c.dept_no
group by c.department;感谢大家,结贴!