【问题标题】:Latest row for each combination of item and location每个项目和位置组合的最新行
【发布时间】:2013-11-05 18:07:24
【问题描述】:

我有一个名为IJ 的表,其中包含一个日期时间列IJDATE,以及一个varchar 列IJLOCIJITEM。我需要这两列的每个组合的最新行(并包括其他列,例如IJLCGT,一个整数,用于最新行)。因此,例如,从这些数据中:

IJLOC   IJITEM      IJDATE      IJLCGT
Reno    12X12X12PX  2013-07-29  175705
Reno    12X12X12PX  2013-08-14  125905

我想要这个结果(因为它是该组合的最新行):

IJLOC   IJITEM      IJDATE      IJLCGT
Reno    12X12X12PX  2013-08-14  125905

我已尝试使用 MAX 并对 varchar 列进行分组,但我无法包含其他列。

【问题讨论】:

    标签: tsql sql-server-2012-express


    【解决方案1】:

    为你的柱子命名的人需要他们的指关节来迎接快速移动的尺子。

    ;WITH cte AS 
    (
      SELECT IJLOC, IJITEM, IJDATE, IJLCGT,
        rn = ROW_NUMBER() OVER (PARTITION BY IJITEM, IJLOC ORDER BY IJDATE DESC)
      FROM dbo.IJ
    )
    SELECT IJLOC, IJITEM, IJDATE, IJLCGT
    FROM cte WHERE rn = 1;
    

    【讨论】:

    • 我同意。我无法控制字段的命名方式。
    • 现在我需要将另一个表名 IB 中的字段添加到此数据中。字段将是 QOO、QOH、QCM 和 AVG。我将在这段代码中的哪里加入该表?
    • @tsqln00b 请提出一个新问题。
    • 这个解决方案不能解决时间问题。如果在同一日期有多次调整,我将无法为 IJRBAL 字段返回正确的数据。
    • @Zane Idiojunctional Rhythm Bus Arbitration Logic...duh
    猜你喜欢
    • 2017-09-27
    • 2019-10-11
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2013-01-04
    • 2011-01-13
    • 2013-07-13
    相关资源
    最近更新 更多