0 sql sql-server sql-server-2008
Name time type
--------------------------------------------
Abc 2014-01-11 10:41:37.000 In
Abc 2014-01-11 18:12:37.000 Out
def 2014-01-07 18:25:37.000 In
def 2014-01-07 20:00:02.000 Out
Run Code Online (Sandbox Code Playgroud)
如何在SQL Server中按名称和名称拆分此数据?结果应如下所示
Name IN Out
---------------------------------------------------------
Abc 2014-01-11 10:41:37.000 2014-01-11 18:12:37.000
def 2014-01-07 18:25:37.000 2014-01-07 20:00:02.000
Run Code Online (Sandbox Code Playgroud)
请帮我
小智 5
将它们组合在一起(进出)如果这就是你所需要的.然后你可以过滤"in"并始终在那之后找到最近的相应"out".我想这里的答案可能非常复杂或非常简单,具体取决于您的数据(假设是什么以及它们有多脏).
在以下示例中,[log]表包含您的数据.
select name,
time as [In],
(select top 1 time from [log] il where il.name=ol.name and il.time>ol.time order by il.time) as [Out]
from [log] ol
where type='in'
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.