亟需一个相减的SQL
需要一个相减的SQL
user 列2 列3 列4
AA x 1 12:01
BB y 1 12:02
AA z 1 12:06
BB y -1 12:08
AA x -1 12:09
AA z -1 12:10
首先是列3中1 和-1 是成对出现的 ,user 和列2完全一样的也有两列,对应1 和-1,需要做的是把相同的1 和-1 相减
结果就是
user 列2 列4
AA X 8 (就是12:09-12:01)
BB Y 6 (就是12:08-12:02)
AA Z 4 (就是12:10-12:06)
------解决方案--------------------
------解决方案--------------------
user 列2 列3 列4
AA x 1 12:01
BB y 1 12:02
AA z 1 12:06
BB y -1 12:08
AA x -1 12:09
AA z -1 12:10
首先是列3中1 和-1 是成对出现的 ,user 和列2完全一样的也有两列,对应1 和-1,需要做的是把相同的1 和-1 相减
结果就是
user 列2 列4
AA X 8 (就是12:09-12:01)
BB Y 6 (就是12:08-12:02)
AA Z 4 (就是12:10-12:06)
------解决方案--------------------
SELECT [user] ,
列2 ,
SUM(列4) 列4
FROM ( SELECT [user] ,
列2 ,
列3
FROM TB
WHERE 列3 = 1
UNION ALL
SELECT [user] ,
列2 ,
-1 * 列3
FROM TB
WHERE 列3 = -1
) a
GROUP BY [user] ,
列2
------解决方案--------------------
select
a.[user],
a.[列2],
datediff(mi,'2000-01-01 '+a.[列4],'2000-01-01 '+b.[列4])
from table a inner join table b
on a.[user]=b.[user]
and a.[列2]=b.[列2]
and a.[列3]<>b.[列3]
where a.[列3]=1