在sql server中的两行中的差异b / w时间

时间:2009-12-01 10:38:04

标签: 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
     2        44      cef   2008-03-13 09:41:00

我需要找到第一行和第二行的时间差异 - 它们属于第一行...而且它在它下面继续并且cat1

3 个答案:

答案 0 :(得分:0)

试试这个(虽未测试)

SELECT datediff(day,t.date,d.date) diff
  FROM @t d 
  JOIN @t t ON d.categoryid = t.categoryid
 and t.itemid <> d.itemid
 and datediff(day,t.date,d.date) >0

答案 1 :(得分: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

答案 2 :(得分:0)

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

写了一个while循环来循环遍历所有类别id,item id's ...将它们变成变量并将它们分配给一个查询,我在那里计算这两者之间的日期

我无法将代码放在这里,因为问题是从办公室张贴的,现在我在家里。无论如何,谢谢大家。