当前位置: 首页 > 面试题库 >

获取相同FK的日期差异最高的前一个记录

姜鸿畴
2023-03-14
问题内容

我需要在一小时内插入同一位客户的前1条记录。如果一小时后插入记录,则不需要该记录。请参见下表。这只是1000条记录的样本。我正在使用SQL Server
2005。

替代文字http://img651.imageshack.us/img651/3990/customershavingmultiple.png


问题答案:

想法如下

  • 一小时内选择所有 订单,并带有其最小(父)ID。(我在这里假设最低的OrderID也将是 最早的 OrderID)。
  • 将这些结果与原始表连接起来。
  • 将这些结果用作更新语句的基础。

SQL语句

UPDATE  Orders
SET     ParentOrderID = p.ParentOrderID
FROM    Orders o
        INNER JOIN (
          SELECT  ParentOrderID = MIN(o1.OrderID), OrderID = o2.OrderID
          FROM    Orders o1
                  LEFT OUTER JOIN Orders o2 ON 
                    o2.CustomerID = o1.CustomerID
                    AND o2.OrderDate > o1.OrderDate
                    AND DATEADD(hh, -1, o2.OrderDate) < o1.OrderDate
          GROUP BY o2.OrderID
        ) p ON p.OrderID = o.OrderID


 类似资料:
  • 我需要得到以下两个日期之间的差异。两个日期都是字符串格式。

  • 返回两个日期之间相差的天数。 计算 Date 对象之间的差异(以天为单位)。 const getDaysDiffBetweenDates = (dateInitial, dateFinal) => (dateFinal - dateInitial) / (1000 * 3600 * 24); getDaysDiffBetweenDates(new Date('2017-12-13'), ne

  • 问题内容: 我有一个表()有以下记录: ,,,,,。 每次作业开始运行时,都会使用记录表中的记录。当作业完成运行时,将使用另一个记录添加到表中。 这两个记录有相同的,和 JOB_ID (这是由进程中运行作业时确定的-唯一的这2个记录)。 我想要一个查询,该查询将返回表中的所有这些记录对(按ID desc排序),但棘手的部分是我想将作业运行的时间()添加到“已完成”状态的记录中。 我怎样才能做到这一

  • 我想根据月份对值进行分类,以便第一次过滤这些值 例如:-

  • 问题内容: 如何找到不同列级别之间以分钟为单位的日期差异,例如 如何获取第一条记录的EndDate与下一条记录的开始日期之间的差异与最后一条记录与NULL值之间的差异。 结果需要 谢谢 普拉夫 问题答案:

  • 本文向大家介绍如何获取iOS中两个日期之间的差异?,包括了如何获取iOS中两个日期之间的差异?的使用技巧和注意事项,需要的朋友参考一下 获得两个日期之间的差异很容易。您应该知道如何在两个日期之间玩。 我们将使用DateFormatter类格式化日期。 DateFormatter的实例创建 NSDate对象的字符串表示形式,并将日期和时间的文本表示形式转换为 NSDate对象。 你可以在这里读更多关