请教:如何将一条记录查询出来的结果为多条记录?

pslily 2015-11-05 10:07:45
表A
员工 调出部门 调入部门 调拨日期
A B C D
先要查询出A在时间D1~D2期间效力部门 D1<D<D2
查询出来的结果为这样
员工 效力部门 起始效力时间 结束效力时间
A B D1 D
A C D D2

请教改如何写查询语句?
...全文
210 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
z123zjf 2015-11-05
  • 打赏
  • 举报
回复
分析函数 lag()over() 没测试数据,没试,应该可行
pslily 2015-11-05
  • 打赏
  • 举报
回复
我想到过这样写: selec 员工,调出部门 as 效力部门, D1 as 起始,调拨日期 as 结束 from a where D between D1 and D2 union select 员工,调入部门 as 效力时间,调拨日期 as 起始,D2 as 结束 from a where D between D1 and D2 有没有更简单的?
小灰狼W 2015-11-05
  • 打赏
  • 举报
回复
就是一个union all 的关系,如果用两个A表来做表连接反而没有必要 性能也没有什么问题
pslily 2015-11-05
  • 打赏
  • 举报
回复
lag()over()好像是作用在同一字段的

3,487

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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