表A1(用户表)户与表A2(职位表)为一对多关系,
表A1:(
a000;//id
b000;//部门
a0101;//姓名
)
表A2:(
a000;//a1的ID
b000;//变动的部门ID
a201;//变动的职位ID
a202;//职位开始时间(date)
a203;//职位结束时间(date)
)
请问怎么算出某用户的全部变动部门(用可,分开),累计经历时间;如结果:
姓名(a0101) 所在机构(多个A2.b000) 岗位(多个A2.a201) 累计月份(多个a203-a202之和)
王码 dept1,dept2,dept3 aa,bb,cc 30
表A1:(
a000;//id
b000;//部门
a0101;//姓名
)
表A2:(
a000;//a1的ID
b000;//变动的部门ID
a201;//变动的职位ID
a202;//职位开始时间(date)
a203;//职位结束时间(date)
)
请问怎么算出某用户的全部变动部门(用可,分开),累计经历时间;如结果:
姓名(a0101) 所在机构(多个A2.b000) 岗位(多个A2.a201) 累计月份(多个a203-a202之和)
王码 dept1,dept2,dept3 aa,bb,cc 30
解决方案 »
- 关于oracle 大数据量查询的优化方案 如果你有招 那就进来聊聊~~
- oracle 递归查询 奇怪的问题!
- SELECT * FROM aa WHERE LOADTIME LIKE '%0001-1-1 8:00:00%' 查不到结果,但是SELECT * 确有结果
- 测试Oracle存储过程
- 求个sql语句
- oracle 能正常关闭,但不能nomount,mount,open分步启动
- 我想查找某条信息,比如姓名张三的人在那些表都出现,大家一般都怎么做?
- update数据太慢怎么办?
- 怎样用企业管理器创建一个新的数据库!
- 如何在sql plus中查看对象(table、index)的存储参数pctfree、pctUsed等?
- 能否通过一次查询实现如下功能。
- ORACLE WRAP PLS-00114
from a1,a2 where a1.a000 = a2.a000 group by a0101;
还有一个问题,职位结束时间a203可能没有,因为有在职的情况,如果是在正,则取当前系统时间,SQL怎么补写上?多谢!
from a1,a2 where a1.a000 = a2.a000 group by a0101;
wmsys.wm_concat用户名为:wmsys,函数名为:wm_concat
我刚试了下
select a000,a0101,wmsys.wm_concat(a2.b000),wmsys.wm_concat(a2.a201), floor(sum(nvl(a203,sysdate)-a202)/30)
from a1,a2 where a1.a000 = a2.a000 group by a0101;
加上"a000"后,这个语句就执行不了了,但是这个用户ID主键也是必须要取出来的.
我刚试了下
select a000,a0101,wmsys.wm_concat(a2.b000),wmsys.wm_concat(a2.a201), floor(sum(nvl(a203,sysdate)-a202)/30)
from a1,a2 where a1.a000 = a2.a000 group by a0101;
加上"a000"后,这个语句就执行不了了,但是这个用户ID主键也是必须要取出来的.希望大家多多指教.