DateDiff 2 даты в одном столбце SQLite - PullRequest
0 голосов
/ 25 марта 2019

Используя SQLite и у меня есть таблица, подобная этой:

ClockId          ProjectId           DateTime
-----------------------------------------------------------------
1                1                   1398/01/01 10:00:00
2                1                   1398/01/01 11:00:00
3                2                   1398/01/01 10:00:00
4                2                   1398/01/01 11:00:00
5                1                   1398/01/01 10:00:00
6                1                   1398/01/01 11:00:00
7                1                   1398/01/01 10:00:00
8                2                   1398/01/01 10:00:00
9                1                   1398/01/01 11:00:00
10               2                   1398/01/01 11:00:00

, и мне нужен этот вывод:

ProjectId            Diff(minute)
------------------------------
1                    180
2                    120

на самом деле мне нужно два соединения, как это:

ClockId           ClockId
---------------------------
1                 2
3                 4
5                 6
7                 9
8                 10

как я могу это сделать?

я пытаюсь этот код в SQL не SQLite:

select
    maintbl2.ProjectId,
    sum(maintbl2.diff) as sum
from (SELECT  
    ROW_NUMBER() OVER(ORDER BY mainTbl.ProjectId) AS Row#,
    mainTbl.ProjectId,
    DATEDIFF(minute, mainTbl.[DateTime], c1.[DateTime]) as diff
FROM [Clock] as c1
CROSS APPLY
        (SELECT TOP 1 * 
            FROM [Clock] as c2
            WHERE c1.ProjectId = c2.ProjectId and c1.DateTime > c2.DateTime
        ) mainTbl) maintbl2

, но не работает правильно !!!

...