####在线高分求助#### PL/SQL 菜鸟问题!!!!

jsmsn 2007-08-17 04:44:11
表A
员工姓名 年月 换休小时 累计换休 年假小时
aaa 200701 123 222 333
aaa 200702 123 222 333
aaa 200703 123 222 333
aaa 200705 333 333 333
aaa 200712 333 333 333
bbb 200701 123 55 122
bbb 200702 21 233 123



表B
员工姓名 年月 1月换休小时 1月累计换休 1月年假 2月换休小时 2月累计换休 2月年假 ...
aaa 2007 123 222 333 123 222 333 ...
bbb 2007 563 565 656 5656 565 5656 ...
ccc 2007 0 0 0 0 0 0 ...



目的: 从表A取数据插入到表B中

遇到的问题:
1. 表A中 有可能 aaa 在5 6 月都没有记录 ,如何让当没记录的时候,值为 0
2.如何根据表A中 月份的不同 ,对应着插入到表B,而且当没有记录的时候,值为0
...全文
170 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanmmu 2007-11-01
  • 打赏
  • 举报
回复
留个脚印,回来研究下。。。
jsmsn 2007-08-19
  • 打赏
  • 举报
回复
mantisXF(枫の叶) 太感谢你了

这个方法比我之前想的简单多了。
激动得眼泪哗哗的。。。
mantisXF 2007-08-17
  • 打赏
  • 举报
回复
只写了三个月的,其他的月自己加吧 ...
我测试是成功的(先运行select里面的语句就可以看到结果),你试试看~~~


insert into A
select tt.name,
to_char(tt.yearmonth,'yyyy') as datetime,
max(nvl(decode(to_char(tt.yearmonth,'mm'),'01',tt.changehour),0)) as "1 changehour",
max(nvl(decode(to_char(tt.yearmonth,'mm'),'01',tt.addchange),0)) as "1 addchange",
max(nvl(decode(to_char(tt.yearmonth,'mm'),'01',tt.yearhour),0)) as "1 yearhour",
max(nvl(decode(to_char(tt.yearmonth,'mm'),'02',tt.changehour),0)) as "2 changehour",
max(nvl(decode(to_char(tt.yearmonth,'mm'),'02',tt.addchange),0)) as "2 addchange",
max(nvl(decode(to_char(tt.yearmonth,'mm'),'02',tt.yearhour),0)) as "2 yearhour",
max(nvl(decode(to_char(tt.yearmonth,'mm'),'03',tt.changehour),0)) as "3 changehour",
max(nvl(decode(to_char(tt.yearmonth,'mm'),'03',tt.addchange),0)) as "3 addchange",
max(nvl(decode(to_char(tt.yearmonth,'mm'),'03',tt.yearhour),0)) as "3 yearhour"
from B tt
group by tt.name,to_char(tt.yearmonth,'yyyy');



=======================result==================================================

NAME DATETIME 1 changehour 1 addchange 1 yearhour 2 changehour 2 addchange 2 yearhour 3 changehour 3 addchange 3 yearhour
---- -------- ------------ ----------- ---------- ------------ ----------- ---------- ------------ ----------- ----------
aaa 2007 123 222 333 123 222 333 123 222 333
bbb 2007 123 55 122 21 233 123 0 0 0

17,377

社区成员

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

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