【问题标题】:SQL First row result in reverseSQL第一行结果相反
【发布时间】:2019-03-13 09:32:42
【问题描述】:
SELECT item_description, item_variant, branch, GROUP_CONCAT(sum ORDER BY 'date') AS chartData
        FROM (
        SELECT item_description, item_variant, branch, SUM(sales) AS sum
        FROM inventory_branches
        WHERE (item_description = 'agapanthus') AND (date BETWEEN '2018-06' AND '2018-08')
        GROUP BY item_description, item_variant, branch, MONTH(date) DESC
        ) T
        GROUP BY item_description, item_variant, branch, MONTH('date') 
        LIMIT 5

上面的代码正确返回除了第一行之外的所有行。 chartData中的第一组数据是反的

In the first row, the 20 should be after the 58

提前谢谢你!

【问题讨论】:

标签: mysql sql group-concat


【解决方案1】:

我假设您的表中有一个名为 date 的列。要按它排序,请使用ORDER BY date 而不是ORDER BY 'date',即不要将列名括在单引号中。 'date' 只是一个字符串文字,按它排序就像根本不排序,因为它对所有行都是相等的。

【讨论】:

  • 我不知道为什么,但是当我去掉单引号时,我得到一个错误,说它是字段列表中的一个未知列。
  • @lekendary:将其包含在您的内部查询的列列表中。
  • 它有效!我没有意识到这就是它所需要的。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
  • 2011-07-26
  • 2015-06-02
  • 2014-12-02
  • 1970-01-01
相关资源
最近更新 更多