在SQL上,做公式的最佳方法是什么?

时间:2018-10-05 19:04:25

标签: sql formula

我具有以下结构

Columns structure

日期列也包含小时。我需要在相同的案例编号上计算开始时间和日期之间的时间。

如果案例1有2个子案例,我需要计算从第一个案例的开始日期到第二个案例的结束日期,并将其作为“实际固定时间”添加到另一列。

事情可能有2个,10个或20个或更多子案例。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您将要结合使用DATEDIFFGROUP BY

SELECT DATEDIFF(hour, MIN(start_date), MAX(end_date)) as ActualFixedTime FROM YourTable GROUP BY Casenumber

这将为您提供每种情况的实际固定时间。为了在子案例的每一行中显示此结果,请在选择表时对其进行联接:

SELECT YourTable.*, FixedTimes.ActualFixedTime
FROM YourTable
INNER JOIN (SELECT Casenumber,
                DATEDIFF(hour, MIN(start_date), MAX(end_date)) AS ActualFixedTime
            FROM YourTable
            GROUP BY Casenumber)
    AS FixedTimes
    ON YourTable.Casenumber = FixedTimes.Casenumber