Sql server sql server中两行的差异黑白时间

Sql server sql server中两行的差异黑白时间,sql-server,tsql,Sql Server,Tsql,我有一个场景,我需要比较两行不同的时间,就像这样 categoryid item_id group date 1 10 abc 2008-03-07 03:02:00 1 35 bcd 2008-04-03 10:03:00 2 13 cde 2008-03-13 07:18:00 2 40 ced 2008-03-13 08:41:00

我有一个场景,我需要比较两行不同的时间,就像这样

categoryid item_id group date 1 10 abc 2008-03-07 03:02:00 1 35 bcd 2008-04-03 10:03:00 2 13 cde 2008-03-13 07:18:00 2 40 ced 2008-03-13 08:41:00 2 44 cef 2008-03-13 09:41:00 类别id项目\u id组日期 美国广播公司2008-03-07 03:02:00 1 35 bcd 2008-04-03 10:03:00 2 13 cde 2008-03-13 07:18:00 240 ced 2008-03-13 08:41:00 244 cef 2008-03-13 09:41:00 我需要找出第一排和第二排的时间差-它们属于第一类。。。在它下面继续,cat1试试这个(虽然没有测试)

选择日期差异(日期、t.date、d.date)差异
来自@t d
在d.categoryid=t.categoryid上加入@t
和t.itemid d.itemid
和日期差(日期、t日期、d日期)>0

我想这样说,但原则是一样的

SELECT r1.item_id AS r1Id, r2.item_id AS r2Id, datediff(day, r1.date, r2.date) AS diff
FROM @t r1
INNER JOIN @t r2 ON r1.categoryid = r2.categoryid
WHERE r1.item_id != r2.item_id

首先,非常感谢大家。很抱歉,没有正确缩进问题。我让它工作了,但是使用了一个存储过程

编写了一个while循环来循环所有类别id、项目id。。。将它们放入变量中,并将它们分配给一个查询,我在该查询中计算这两个变量之间的日期差


我不能把代码放在这里,因为问题是从办公室发出来的,现在我在家里。无论如何,谢谢大家。

将代码缩进四个空格,使其为单空格。更容易阅读:)请提供一个给定输入的输出结果集示例。categoryid=2如何?你期望那里有什么?
SELECT r1.item_id AS r1Id, r2.item_id AS r2Id, datediff(day, r1.date, r2.date) AS diff
FROM @t r1
INNER JOIN @t r2 ON r1.categoryid = r2.categoryid
WHERE r1.item_id != r2.item_id