【问题标题】:Sort and Group by Time按时间排序和分组
【发布时间】:2014-07-24 01:23:56
【问题描述】:

我有下表:

Line Date    Time   Order   Qty
   3 1140531 24737  S215037 1
   3 1140531 24737  S215037 1
   2 1140531 14955  S215058 1
   2 1140531 14955  S215058 1
   2 1140531 24055  S215059 1
   2 1140531 24055  S215060 1
   3 1140530 25319  S215099 1
   3 1140530 25319  S215099 1

我需要能够显示行、工单、数量总和(我需要根据日期和时间在 desc 上显示首先完成的订单)。我的最终结果应该是这样的:

Line     Order   Sum of Qty
2       S215058   2
2       S215059   1
2       S215060   1
3       S215099   2
3       S215037   2

尝试:

我有一个查询将数据更新到一个按行、日期、时间排序的表中 然后我应用以下查询:

SELECT     Line, Order, Sum(Qty)
From MyTable
Group by Line, Order

当我对项目进行分组时,它会根据字母顺序而不是时间对我的订单进行分组。请帮忙!

【问题讨论】:

  • 请使其易于阅读
  • order 是保留字。请提供您的实际查询。
  • Group by 仅限组,Order by 订单。但正如草莓所说,你的列名需要工作,不能使用这样的保留字。
  • SELECT Line, myOrder, Sum(Qty) From MyTable Group by Line, myOrder
  • 我的实际列名是 myOrder。我为混乱道歉。当我分组时,虽然我得到按字母顺序排列的“myOrder”列。

标签: mysql sql group-by sql-order-by


【解决方案1】:

当你提到desc这个词时,我觉得你的描述和预期的结果有些矛盾。无论如何,以下查询将为您提供最终结果。

SELECT `Line`, `Order`, Sum(Qty) 
From MyTable 
Group by `Line`, `Order` 
order by `Line`, `Date`, `Time`, `Order`;

这里的 SQL 小提琴:http://www.sqlfiddle.com/#!2/456bf/8

【讨论】:

    猜你喜欢
    • 2013-05-07
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2019-12-26
    相关资源
    最近更新 更多