1

您好,我正在尝试编写一个间隔为 1 年的案例陈述,在这种情况下,年份从 4 月开始,到次年 3 月结束,但是如果输入例如今年 3 月,那么它将是去年年底由于这一事实,这一年将从去年四月开始

看看这里的 sqlfiddle

这是我到目前为止的代码,请注意

sum(case 
        when Month(py.pay_date) = 4 interval())1 year
        then amount end) yearly_amount

这是我遇到的主要问题

4

1 回答 1

4

您可以使用它来yearly_amount计算当年(从 4 月开始,到次年 3 月底结束):

sum(case 
        when py.pay_date >= STR_TO_DATE(CONCAT(YEAR(NOW()), '-04-01'), '%Y-%m-%d') and
             py.pay_date <  STR_TO_DATE(CONCAT(YEAR(NOW()), '-04-01'), '%Y-%m-%d') + interval 1 year
             then amount
        end) yearly_amount

SQLFiddle 演示

于 2012-08-28T21:53:40.813 回答