我需要使用SQL实现一个非常复杂的函数,我无法弄清楚从哪里开始。SQL Server 2012:计算日志表中每条唯一记录的总时间
--------------------------------------------------------
Entity | Source |Destination | Time
--------------------------------------------------------
E1 | - | T12 |2012-05-17 10:13:01.000
E2 | - | T22 |2012-05-17 10:13:02.000
E1 | T12 | T22 |2012-05-17 10:13:03.000
E2 | T22 | T12 |2012-05-17 10:13:04.000
E1 | T22 | T12 |2012-05-17 10:13:05.000
E2 | T12 | T21 |2012-05-17 10:13:06.000
E1 | T12 | T13 |2012-05-17 10:13:07.000
E2 | T21 | T23 |2012-05-17 10:13:08.000
---------------------------------------------------
Src/Dest | Type
---------------------------------------------------
T11 | T1
T12 | T1
T13 | T1
T21 | T2
T22 | T2
T23 | T2
-----------------------------------------------------
我需要计算每个实体在这两种类型中花费的总时间。
例如:
E1已经使用了2秒(13:01-13:03)在T12,2秒(13:03-13:05)在T22,2秒(13:05-13:07)在T12。所以,花在T1上的时间是4秒,花在T2上的时间是2秒
E2在T12,2秒(13:04-13:06)花了2秒(13:02-13:04) 2秒(13:06-13:08)在T21。所以,在T1中花费的时间是2秒,花在T2上的时间是4秒。
注:我不能做最大 - 最小时间;我需要继续积累时间,直到没有可用的记录。
SQL Server 2012中最简单的方法是什么?如果需要,我可以创建任何中间表。谢谢!
所以它被认为是“在从被列为目的地的时间到它在源中列出的时间的类型中? –
是的,那是对的。 – user1097128