SQL每日一题(20211229)

SQL数据库开发

共 1210字,需浏览 3分钟

 ·

2022-01-01 14:20

题目
有一张充值表T1229,先需要根据财务的需求,根据充值日期、有效天数和充值金额分摊到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日这天的天数,那么就全部分摊。

测试数据


CREATE TABLE T1229 
(
订单号 VARCHAR(10),
充值日期 DATE,
充值金额 MONEY,
充值产品 VARCHAR(100),
有效天数 INT
)
 
INSERT INTO T1229 VALUES('1001','2020-07-01',500.00,'初一数学提高班',90)
INSERT INTO T1229 VALUES('1002','2020-08-04',1000.00,'成人英语口语突破班',30)
INSERT INTO T1229 VALUES('1003','2020-09-10',2000.00,'初三数学提高班',240)
INSERT INTO T1229 VALUES('1004','2020-11-15',3000.00,'高三语文作文提高班',360)
INSERT INTO T1229 VALUES('1005','2020-12-20',2000.00,'高一物理精讲班',60)



参考答案

应读者的要求,我将参考答案公布了,有需要的同学可以在下方公众号「数据前线」(非本号)后台回复关键字:1229,即可获取。还是建议先独立答题~

数据前线

——End——

后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。


推荐阅读

浏览 22
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报