【问题标题】:Group Certain Rows Together in T-SQL Based on Column Value基于列值在 T-SQL 中将某些行组合在一起
【发布时间】:2020-09-28 17:57:48
【问题描述】:

我有以下疑问:

select MT.* 
from MyTable MT 
where 0 = 0  
order by ChangeDate, Type, ItemNumber

返回以下内容:

TableID    ChangeDate    Description    ItemNumber    Type
-------    ----------    -----------    ----------    ----
11259      2019-05-20    Item1          1335          MOVE
11260      2019-05-20    Item2          1475          MOVE
11261      2019-05-20    Item3          1782          UPDATE
11262      2019-05-20    Item4          1789          UPDATE
11263      2019-05-20    Item5          1782          MOVE

我正在尝试将具有相同 ItemNumber 的行(例如:1782)组合在一起,并且很难尝试使用 GROUP BY 子句来实现这一点,因为我不知道如何操作关联的聚合方法来实现这一点.有人吗?

更新

更具体地说,我希望具有相同 ItemNumber 的行彼此相邻,如下所示:

TableID    ChangeDate    Description    ItemNumber    Type
-------    ----------    -----------    ----------    ----
11259      2019-05-20    Item1          1335          MOVE
11260      2019-05-20    Item2          1475          MOVE
11261      2019-05-20    Item3          1782          UPDATE
11263      2019-05-20    Item5          1782          MOVE
11262      2019-05-20    Item4          1789          UPDATE

【问题讨论】:

  • 不要粗鲁,但您根本没有解释您想要什么结果——如何您想要聚合数据以及遇到什么问题。您的问题不完整。
  • 谢谢 Gordon,我会更新的更具体。

标签: sql sql-server tsql date sql-order-by


【解决方案1】:

看起来您只是想要一个不同的 ORDER BY 子句 - 我看不出这与聚合有何关系 (GROUP BY)。看起来应该是:

order by ChangeDate, ItemNumber, TableID

或者,可能:

order by ItemNumber, ChangeDate, Type

【讨论】:

    猜你喜欢
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多