【问题标题】:Query grouped by month on multiple JOINs在多个 JOIN 上按月分组的查询
【发布时间】:2011-10-19 00:02:00
【问题描述】:

好的,我按月对查询进行分组,以便获得一年中每个月的记录,但我需要弄清楚如何做到这一点:基本上按月对两个不同的 JOIN 语句进行分组。如果可能,我正在尝试在一个查询中获取每个子表中数量的计数或总和。我可以在 php 中循环,但我正在尝试在 mysql 中找到一种方法。

这是一个示例

SELECT SUM(purchase_quantity),SUM(sales_quantity)
FROM products p
INNER JOIN purchase_order_lines sl ON pl.product_id = p.id
INNER JOIN purchase_orders po ON pl.purchase_order_id = po.id
INNER JOIN sales_order_lines sl ON sl.product_id = p.id
INNER JOIN sales_orders so ON sl.sales_order_id = so.id
GROUP BY YEAR(so.posted & po.posted), MONTH(so.posted & po.posted)

我知道这是行不通的,而且逻辑很荒谬,这不完全是我的数据库的结构,而只是关于事物如何链接以及我正在尝试做什么的想法。我认为它必须通过 SELECT 语句中的子查询来完成,但我还没有想出任何东西。我会继续考虑,但如果有人有任何想法,那就太棒了。

【问题讨论】:

    标签: mysql group-by subquery


    【解决方案1】:

    因为您对结果进行了分组,所以您会得到一个计数。你为什么不尝试运行一个单独的语句来计算结果和一个单独的语句来分组它。

    【讨论】:

    • 不确定你在说什么。如果可能的话,我正试图找到一种方法来做一个选择。如果我在我的 php 代码中循环遍历月份范围并且只为范围中的每个月进行选择,返回结果并从中构建一个数组,我就有一种方法可以工作。这是我目前唯一的解决方案,但希望有一个更高效的解决方案,如果可能的话,查询不会那么繁重。
    猜你喜欢
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 2014-10-24
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多