财务应收预收账期统计的问题

wildwolv 2020-01-10 09:27:57
数据案例如下:

客户 过账日期 清账日期 金额
a 20200101 20200110 100
a 20200102 20200110 100
a 20200103 20200106 100
a 20200104 20200110 150
a 20200105 20200110 100
a 20200106 00000000 -200
a 20200107 20200110 100
a 20191207 20200105 100

输出结果如下:
客户 应收 预收 账期
a 100 0 29
a 100 0 2
a 50 0 5 注:50=(-200+100+150);5是用户输入日期减去150所在的过账日期
a 100 0 3
a 100 0 7
a 100 0 8

需求:
1、用户输入时间,假设为20200109
2、首先对客户的金额汇总,然后进行判断,如果金额>=0,汇总金额计入应收;如果金额<0,汇总金额计入预收;
3、账期计算公式:如果清账日期=00000000或者清账日期大于等于用户输入日期,账期=用户输入日期-过账日期;如果清账日期小于用户输入日期,账期=清账日期-过账日期
4、如果金额等于0,不计算账期;如果金额大于0,计算出这一行数据的账期;如果金额小于0,则加上最近日期的金额,直至数据大于等于0,如果刚好等于0,不计算账期,如果大于0,则计算所加数据日期最远列的账期,金额为相加的金额。

这个不是在oracle数据库,不支持rownum,其他写法和oracle类似,实在不行写rownum也可以,我把数据抽到oracle,算好后再抽回去。
...全文
447 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wildwolv 2020-01-13
  • 打赏
  • 举报
回复
问题我已经解决了,解决方法是先算出每一条记录的账期,然后在前端报表工具里面通过if判断得到我想要的结果,但是不能通过sql或存储过程来实现吗?

3,494

社区成员

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

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