【问题标题】:MySQL get quantities from last 12 months grouped by monthMySQL 获取按月分组的过去 12 个月的数量
【发布时间】:2016-10-08 09:26:20
【问题描述】:

我正在尝试用 PHP 编写 MySQL SELECT 语句。

我有 2 张桌子,salessale_items

sales 有列:sale_idstatus

sale_items 有以下列:sale_iddate_added (DATETIME)、quantity

我需要返回 sale_items 的数量,过去 12 个月按月分组,sales 中相应行的 status 等于“已完成”(如您所见,@987654333 @ 和sale_items 可以加入sale_id)。

我已尝试修改以下两项以满足我的需要,但没有成功:

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

Mysql sum for last 12 months

【问题讨论】:

    标签: php mysql select


    【解决方案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);
    

    【讨论】:

    • 嗯,这对数据集做出了确定的、严肃的假设
    • 我假设您在谈论日期字段,不是吗?
    • 是的,date_added 字段是用于分组的字段,我会尽快尝试一下
    • 工作的乐趣,不敢相信我认为这会比原来更难
    【解决方案2】:
    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);
    

    【讨论】:

    • 虽然这段代码 sn-p 可以解决问题,including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
    • 好的,下次抱歉,我会解释更多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2020-07-14
    相关资源
    最近更新 更多