前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL每日一题(20231031)

SQL每日一题(20231031)

作者头像
SQL数据库开发
发布2024-04-25 10:00:52
690
发布2024-04-25 10:00:52
举报
文章被收录于专栏:SQL数据库开发SQL数据库开发

题目

有一张充值表G1031,先需要根据财务的需求,根据充值日期、有效天数和充值金额分摊到2020年最后一天,即2020年12月31日。 先举例测试数据5条,如下:

需要得到如下的表,即在上表的基础上增加两列分摊金额和剩余金额。分摊金额时,包括充值日期和2020年12月31日这两天,即包括头尾日期。

得到的结果如下:

请问这个sql如何写?谢谢!

解释:例如2020-09-10这天充值了2000元,从2020-09-10到2020-12-31日这一天总共有113天,实际有效期为240天,那么到2020-12-31日这一天,需要分摊这2000元的金额计算方式为:2000/240*113=941.6629。如果有效天数小于到2020-12-31日这天的天数,那么就全部分摊。

测试数据

代码语言:javascript
复制
CREATE TABLE G1031
(
订单号 VARCHAR(10),
充值日期 DATE,
充值金额 MONEY,
充值产品 VARCHAR(100),
有效天数 INT
)
 
INSERT INTO G1031 VALUES('1001','2020-07-01',500.00,'初一数学提高班',90)
INSERT INTO G1031 VALUES('1002','2020-08-04',1000.00,'成人英语口语突破班',30)
INSERT INTO G1031 VALUES('1003','2020-09-10',2000.00,'初三数学提高班',240)
INSERT INTO G1031 VALUES('1004','2020-11-15',3000.00,'高三语文作文提高班',360)
INSERT INTO G1031 VALUES('1005','2020-12-20',2000.00,'高一物理精讲班',60)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SQL数据库开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档