SQL - 在两个表之间使用 datediff 连接

SQL - using datediff between two tables with join

我有一个场景需要生成满足以下要求的报告:

Display status of each support ticket. For each ticket include number of updates, the problem, status, time elapsed between ticket being logged and first update, and the time between ticket being logged and final update.

相关表的数据库架构是:

Ticket (TicketID, Problem, Status, Priority, LoggedTime, CustomerID, ProductID)
TicketUpdate (TicketUpdateID, Message, UpdateTime, TicketID)

到目前为止我有以下内容:

SELECT t.TicketID,
       COUNT(tu.TicketID) AS 'Number of Updates',
       t.Problem,
       t.Status,
       (
           SELECT DATEDIFF(HOUR, MIN(UpdateTime), MAX(UpdateTime))
           FROM TicketUpdate
           WHERE TicketID = t.TicketID
       ) AS 'Hours bw Q and Last response'
FROM Ticket t
    LEFT JOIN TicketUpdate tu
        ON t.TicketID = tu.TicketID
GROUP BY t.TicketID,
         t.Problem,
         t.Status;

这没有解决要求,但我正在试验该功能。我期待我能够在 datediff 函数中使用别名,但显然我不能(如果我错了请纠正我)。

非常感谢对此问题的任何帮助。谢谢!

首先聚合更新;

SELECT t.*, tu.NumUpdates,
       DATEDIFF(HOUR, t.LoggedTime, tu.FirstUpdateTime),
       DATEDIFF(HOUR, t.LoggedTime, tu.LastUpdateTime)
FROM Ticket t LEFT JOIN
     (SELECT tu.TicketID, COUNT(*) as NumUpdates,
             MIN(tu.UpdateTime) as firstUpdateTime,
             MAX(tu.UpdateTime) as lastUpdateTime
      FROM TicketUpdate tu
      GROUP BY tu.TicketID
     ) tu
     ON t.TicketID = tu.TicketID