2017-02-22 14 views
0

私は過去3ヶ月のレコードを取得しようとしています。注文総額を週ごとに合計する必要があります。私は次の質問をしました。週ごとの合計金額を合計する方法

select CONCAT("Week", WEEK(created_at)) as week_number, sum(total_cost) 
from certified_diamond_orders 
where created_at > 2016-11-22 
and status = "delivered" 
group by week("created_at") 

しかし、これで1レコードしか取得できません。 Infact私のテーブルは2年のエントリを持っています。また、私は週の開始日と終了日をどのようにして自分のグラフに表示するかを理解しようとしていました。

私が間違っている箇所はありますか?

+0

http://stackoverflow.com/questions/3317980/getting-first- mysqlを使用している週の日 - – SIDU

答えて

2

week("created_at")created_atではなく、文字列"created_at"の週を決定しようとしているようです。これは、なぜ結果が1行しか得られないのかを説明するかもしれません。

2016-11-22も怪しい代わりに日付の合計のように見えます(2016 - 11 - 22 = 1983

"2016-11-22"対これを試してみてください:

SELECT 
    CONCAT('Week', WEEK(created_at)) AS week_number, 
    SUM(total_cost) 
FROM certified_diamond_orders 
WHERE 
    created_at > '2016-11-22' AND 
    status = 'delivered' 
GROUP BY WEEK(created_at) 
+0

結果に週の開始日と終了日をどのように持たせることができるか考えてみましょうか? – Jass

+0

DATE_ADD(created_at、INTERVAL(1- DAY_WEK、DATE_ADD(created_at、INTERVAL(7-DAYOFWEEK(created_at))DAY)AS end_of_week'、あなたの週が何日に始まるかによって異なります:日曜日か月曜日。こちらをご覧ください:https://stackoverflow.com/questions/6944055/how-do-i-get-the-first-day-of-the-week-of-a-date-in-mysql – aidan

関連する問題