2024-05-09
请教这个SQL(关于model)

如下图:model_test表emid,year1,S,A四个字段分别代表工号,年份,应有年假,已请年假
R列代表当前剩余的年假天数,需用model计算,现也计算出来了,公式如下:
R=上一行的R值+当前行的S值-当前行的A值
但我要在这个基础上进一步处理:同一个工号同一年份可能有两条或多条记录(一年分两段计算),如果当前行和上一行的年份是同一年,则按上面的规则累计,如果不是同一年还分两种情况,1是上一行的R值小于0则累加,如果大于0,上一行的R值当0来处理 (意思是上一年没请完的年假过期,而请多的要扣回),我在 rules后面用decode不行,求帮忙
建表和记录插入SQL在后面,
create table model_test(
emid varchar2(1),
year1 varchar2(4),
s number(4,1),
a number(4,1),
r number(4,1),
primary key(emid,year1));
insert into model_test values('A','2023',0,1.5,NULL);
insert into model_test values('A','2024',1.5,0,NULL);
insert into model_test values('A','2025',15,0,NULL);
insert into model_test values('A','2026',14,7,NULL);
commit;
我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
回答交流
Markdown
请输入正文
提交
相关推荐
Oracle ADG 自动切换,怎么判断没有数据丢失?
回答 1
已采纳
ADG是通过日志进行数据同步的,只要日志能对上,数据就没问题,通过以下SQL查询主备的日志序列号是否一致,如果日志一致,数据就是没有丢失,主备数据也是一致的select'Primary:'"DBRol
请问Oracle ADG优化建议
回答 4
最大性能是对受DG库影响最小的,不太可能造成Standby库出问题,是否是主库性能不足造成进程被卡住造成的啊,还是多看看日志吧。
有没有语句可以查询Oracle中某个表的增删改查的时间点?
回答 4
这么细粒度的审计记录,可以考虑使用第三方运维管理平台来实现
Oracle timeStamp 时间类型相减是怎样的?
回答 1
已采纳
我们都知道date和timestamp都是对日期和时间的表示,只是两种类型的精确度不同,前者精确到秒,后者精确到小数秒(fractionalsecondsprecision),可以是0to9,缺省是6
单步调试 package,报错
回答 3
MDSYS.SDOPOINTTYPE如果是MDSYS用户下的一个自定义TYPE,那么要看是否授予该TYPE相应权限给调试用户了。
请问各位大佬 这种事件怎么处理?
回答 2
impdp8个并行
关于Tablespace存储空间的问题
回答 3
有很多脚本,比如可用剩余多少天的那种,一般还是用语句查,或者10g的client依然很好用
最近用户总说连接到oracle后,长时间没操作,就提示连接断开,怎么设置?
回答 4
应该是防火墙超时,对长连接进行断开了
国内做MySQL分布式数据库比较好的厂商是哪家?
回答 2
中兴GoldenDB
使用数据泵报错:ora-06512
回答 2
您好,请检查残留进程和清理残留表【1】selectownername,jobname,operation,jobmode,state,attachedsessionsfromdbadatapumpjo
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
热门文章
Oracle数据库,详解Oracle兼容性
oracle身份验证
查询优化器参数 - optimizer_index_caching
Oracle RMAN验证: 如何创建腐败?
Linux7系统+Oracle11g+维护
使用 Rman 备份恢复 Oracle RAC 到单机文件系统
【ORACLE】一条看不出会删哪个表的delete语句
Will
compressing my indexes improve performance ?
Oracle 插入选择与追加NOLOGGING PARALLEL(t,8) -这是否能够处理1亿5千万条记录?
Oracle 12.2新特性掌上手册 - 第二卷 In-Memory增强