2012-08-28 38 views
1

你好我想寫一個案例陳述,在這種情況下有1年的時間間隔,一年開始於四月,結束下一年的三月,但如果例如今年三月進入這將是去年年底由於是,今年將從去年四月一年時間間隔mysql條件

已經開始

看一看在sqlfiddle here

,這是我到目前爲止的代碼,請注意這樣的事實

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

這是在那裏我遇到的主要問題

+0

錯誤信息是什麼? (我假設這是一個語法錯誤) – Cfreak

+0

'Month(py.pay_date)= 4 interval())1 year' ---這是什麼?你能解釋一下你如何期望這個確切的表達式起作用嗎? – zerkms

+0

你可以舉一個你希望看到輸出的數據的例子嗎? – bumperbox

回答

4

您可以使用此爲您yearly_amount計算本年度(從4月份開始,並在明年三月底結束):

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 Demo

+1

非常感謝,我非常感謝。 – dames