如果有人能帮助我构建一个 MSSQL Server 2000 查询,返回客户的 A 条目和他们的 B 条目之间的持续时间,我将不胜感激。
并非所有客户都有 B 记录,因此不会返回任何结果。
客户审计
+---+---------------+---+----------------------+ | 1 | Peter Griffin | A | 2013-01-01 15:00:00 | | 2 | Martin Biggs | A | 2013-01-02 15:00:00 | | 3 | Peter Griffin | C | 2013-01-05 09:00:00 | | 4 | Super Mario | A | 2013-01-01 15:00:00 | | 5 | Martin Biggs | B | 2013-01-03 18:00:00 | +---+---------------+---+----------------------+
我希望得到类似于以下的结果:
+--------------+----------------+ | Martin Biggs | 1 day, 3 hours | +--------------+----------------+
最佳答案
像下面这样的东西(不知道你的模式,所以你需要更改对象的名称)就足够了。
SELECT ABS(DATEDIFF(HOUR, CA.TheDate, CB.TheDate)) AS HoursBetween
FROM dbo.Customers CA
INNER JOIN dbo.Customers CB
ON CB.Name = CA.Name
AND CB.Code = 'B'
WHERE CA.Code = 'A'
关于不同行中两个日期之间的 SQL 持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14399197/