题解 | #小破站会员2021年9月收入#

小破站会员2021年9月收入

http://www.nowcoder.com/practice/9072394169054c278518b1872cb72213

分四种情况讨论:
第一种是 开始日期小于2021-9-1号 结束日期大于2021-9-30号的
第二种是 开始日期小于2021-9-1号 结束日期在2021-9-1号和2021-9-30号之间的
第三种是 开始日期大于2021-9-1号 结束日期小于2021-9-30号的
第四种是 开始日期大在2021-9-1号和2021-9-30号之间的, 结束日期大于2021-9-30号的
select round(sum(case when begin_date<='2021-09-01' and end_date>='2021-09-30'
                then 30*pay_avg 
                when begin_date<='2021-09-01' and end_date<='2021-09-30' and end_date>='2021-09-01'
                then (datediff(end_date,'2021-09-01')+1)*pay_avg
                when begin_date>='2021-09-01' and end_date<='2021-09-30'
                then pay_amount
                when begin_date>='2021-09-01' and begin_date<='2021-09-30' and end_date>='2021-09-30'
                then (datediff('2021-09-30',begin_date)+1)*pay_avg
                else 0
                end
                ),2
            )
from (
        select *,pay_amount/days as pay_avg
        from detail_list_tb
     ) as t



全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 19:05
面试官_我太想进步了:混学生会的,难怪简历这么水
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务