Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQLServer中使用sql合并同一行? NIK输入/输出日期 10026 1 2015-07-07 14:15:09.000 10026 0 2015-07-06 14:16:28.000 10026 1 2015-07-06 14:16:37.000 10026 0 2015-07-08 05:26:17.000_Sql_Sql Server - Fatal编程技术网

如何在SQLServer中使用sql合并同一行? NIK输入/输出日期 10026 1 2015-07-07 14:15:09.000 10026 0 2015-07-06 14:16:28.000 10026 1 2015-07-06 14:16:37.000 10026 0 2015-07-08 05:26:17.000

如何在SQLServer中使用sql合并同一行? NIK输入/输出日期 10026 1 2015-07-07 14:15:09.000 10026 0 2015-07-06 14:16:28.000 10026 1 2015-07-06 14:16:37.000 10026 0 2015-07-08 05:26:17.000,sql,sql-server,Sql,Sql Server,我希望得到如下结果: NIK IN/OUT DATE 10026 1 2015-07-07 14:15:09.000 10026 0 2015-07-06 14:16:28.000 10026 1 2015-07-06 14:16:37.000 10026 0 2015-07-08 05:26:17.000 NIK日期输入日期输出 10026 2015-07-07 14:15:09.000空

我希望得到如下结果:

NIK IN/OUT DATE 10026 1 2015-07-07 14:15:09.000 10026 0 2015-07-06 14:16:28.000 10026 1 2015-07-06 14:16:37.000 10026 0 2015-07-08 05:26:17.000 NIK日期输入日期输出 10026 2015-07-07 14:15:09.000空 10026 2015-07-06 14:16:28.000 2015-07-06 14:16:37.000 10026零2015-07-08 05:26:17.000 如何在sql server中使用sql基于字段(输入输出)合并同一行

NIK DATE IN DATE OUT 10026 2015-07-07 14:15:09.000 null 10026 2015-07-06 14:16:28.000 2015-07-06 14:16:37.000 10026 null 2015-07-08 05:26:17.000 输出:-


我认为,您的数据中可能存在0/1的问题。

为什么
2015-07-06 14:16:37.000
有1并记录为日期,但
2015-07-07 14:15:09.000
也有1并记录为日期?为什么要将其标记为MySQL?为什么假设每天只有一个输入/输出组合?即使没有,也需要为特定日期和NIK获取Min-DateIn和Max-Dateout,然后需要生成pivot。但若最终用户希望在一整天之外显示,那个么上述查询将不起作用。但这一要求值得商榷。
Set Nocount On;

Declare @test Table
(
     NIK            Int
    ,InOut          Bit
    ,Date           Datetime
)

Insert Into @test(NIK,InOut,Date) Values
 (10026,1,'2015-07-07 14:15:09.000')
,(10026,0,'2015-07-06 14:16:28.000')
,(10026,1,'2015-07-06 14:16:37.000')
,(10026,0,'2015-07-08 05:26:17.000')


Select  t.NIK,[0] As DateIn,[1] As DateOut
From    (
            Select   t.NIK
                    ,t.InOut
                    ,Max(t.Date) As Date
                    ,Dateadd(D, 0, Datediff(D, 0, t.Date)) As OnlyDate
            From    @test As t
            Group BY Dateadd(D, 0, Datediff(D, 0, t.Date))
                    ,t.NIK
                    ,t.InOut
        ) As t
        PIVOT
        (
            Min(t.Date)
            For InOut In ([0],[1])
        ) As t