2016-10-08 16 views
1

PHPでMySQL SELECT文を作成しようとしています。MySQLは過去12ヶ月間の数量を月別にグループ化します

私はsalessale_itemsの2つのテーブルを持っています。

売上高は列があります:sale_idstatus

sale_itemsの列があります。sale_iddate_added(DATETIME)、quantity

私は月ごとにグループ化され、最後の12ヶ月間で、sale_itemsからの数量を返す必要がどこにsalesの対応する行のstatusは「完了」と同じです(ご覧のとおり、salessale_itemssale_idで結合できます)。

私は私のニーズに合わせて、次の両方を変更しようとしましたが、運と:

MySQL monthly Sale of last 12 months including months with no Sale

Mysql sum for last 12 months

答えて

1

それはあなたがと一緒に、このためのMySQL MONTH()機能を使用することができ、非常に簡単ですGROUP BY caluse。

SELECT SUM(SI.quantity),MONTH(SI.date_added) 
FROM sale_items SI 
JOIN sales S 
ON S.id=SI.sale_id 
WHERE S.status = 'completed' 
GROUP BY MONTH(SI.date_added); 
+0

まあ、これはデータセット – Strawberry

+0

に関する特定、重大な仮定は、私はあなたが日付フィールドの話をしていると仮定します、それはありませんか? –

+0

はい、 'date_added'フィールドはグループ化に使用されるフィールドです。私はすぐにこれを試してみます – sgspragg

0
SELECT COUNT(quantity),MONTH(SI.date_added) 
FROM sale_items SI 
JOIN sales S 
ON S.id=SI.sale_id 
WHERE S.status = 'completed' 
GROUP BY MONTH(SI.date_added); 
+0

このコードスニペットは質問、[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 – andreas

+0

私は次回より詳細にexplaneします。 – MounirOnGithub

関連する問題