2017-11-18 91 views
-2

在我的MySQL中,我有字段ID,價格和日期字段(時間戳)。獲取兩列的總和並將其保存到變量

我想在月底結束時計算當月的總費用並將其保存到變量$ monthjuly。

SELECT SUM(price) FROM app WHERE YEAR(datum) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH) AND MONTH(datum) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)" 

我試圖通過這個命令輸出結果,但我沒有得到任何結果與此metod。 我的錯誤在哪裏?

+2

很高興看到你爲了自己解決這個問題而嘗試了什麼,這會告訴我們你在發佈問題之前已經研究過這個問題。 當你嘗試,你也學習。如果有人只是給你一個答案/解決方案,那就沒有用,我說這是爲了你的未來。 然後,您可以編輯您的帖子以包含可能失敗的內容;即使這表明了你的努力。請記住,我們總是樂意幫助:-) –

+0

是的弗雷德,我沒有寫我嘗試過,但我不能前進,直到我解決這個問題,對不起讓人們知道在我的第一封信中題。 SELECT SUM(價格)從應用程序 WHERE YEAR(基準)= YEAR(CURRENT_DATE - 時間間隔1個月) 和月(數據)= MONTH(CURRENT_DATE - 時間間隔1個月)」 – FabianCannes

+1

@FabianCannes,沒看到你編輯你的文章我已經用一個有效的SQL語句更新了我的答案基本上你使用的是一個聚合SUM,它需要你也有一個GROUP BY – PatrickSJ

回答

1

編輯: 您正在做一個沒有數據分組的SUM。無論何時彙總數據,您都需要進行分組。在這種情況下,我們按年份和月份進行分組。

演示 - http://sqlfiddle.com/#!9/d952a3/1

SELECT SUM(price), year(datum), month(datum) 
FROM app 
WHERE 
    YEAR(datum) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH) 
    AND MONTH(datum) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH) 
GROUP BY YEAR(datum), MONTH(datum) 
+0

不知道郵件如何在這裏應用 – tadman

+0

OP最初說他/她想要得到結果,並通過cron作業控制的時間通過電子郵件發送給他們。 – PatrickSJ

+0

如果那是在評論中它已被收回,所以我認爲你在這裏的雜草。 – tadman

0

,所以我分享你的功能概述,實現您的要求,您沒有提到服務器,應用程序和數據庫的詳細信息。

第1步:您需要在應用程序中添加將使用URL調用的函數。而且函數應該應該有下面的代碼,

function foo() { 
    // compare today date and check is it last day of month or not 
    if($islastday) { 
     // fetch data from sql current month 
     //SELECT sum(cost) 
     //FROM table 
     //WHERE MONTH(date field) = MONTH(CURRENT_DATE()) 
     //AND YEAR(date field) = YEAR(CURRENT_DATE()) 

     //write mail function and send mail with email template providing it 
     sql data 
    } 
} 

第2步:每天設置cron作業上面的函數調用。

謝謝。

相關問題