2014-03-12 28 views
-1

我有這樣從連續的行合併數據

SELECT b.studentname, 
CASE 
    WHEN a.eventtype = 1 
    THEN a.eventdatetime 
    ELSE NULL 
END AS login, 
CASE 
    WHEN a.eventtype = 7 
    THEN a.eventdatetime 
    ELSE NULL 
END AS logout 

FROM student b INNER JOIN logstudent a ON b.studentid = a.studentid 
WHERE b.active AND (a.eventtype = 1 OR a.eventtype = 7) 

輸出這樣

Student name login     logout 

Toto Imawan  2013-05-08 10:56:46.88 
Toto Imawan        2013-05-08 11:12:08.279 
Toto Imawan  2013-09-23 07:07:54.537 
Toto Imawan        2013-09-23 07:10:50.362 
Toto Imawan  2013-09-23 07:21:18.725 
Toto Imawan        2013-09-23 07:24:16.831 
Toto Imawan  2013-09-23 07:26:06.254 
Toto Imawan        2013-09-23 07:28:35.427 
Toto Imawan  2013-09-23 07:46:49.229 
Toto Imawan        2013-09-23 07:52:18.691 
CCAASTRA.L        2013-05-07 10:22:14.913 
CCAASTRA.L  2013-05-07 12:35:48.136 
CCAASTRA.L        2013-05-07 13:45:10.366 
CCAASTRA.L  2013-05-08 02:23:23.505 
CCAASTRA.L        2013-05-08 04:18:05.096 

但畢竟是假的輸出我想要查詢的輸出這樣

Student name login     logout 

Toto Imawan  2013-05-08 10:56:46.88 2013-05-08 11:12:08.279 
Toto Imawan  2013-09-23 07:07:54.537 2013-09-23 07:10:50.362 
Toto Imawan  2013-09-23 07:21:18.725 2013-09-23 07:24:16.831 
Toto Imawan  2013-09-23 07:26:06.254 2013-09-23 07:28:35.427 
Toto Imawan  2013-09-23 07:46:49.229 2013-09-23 07:52:18.691 
CCAASTRA.L        2013-05-07 10:22:14.913 
CCAASTRA.L  2013-05-07 12:35:48.136 2013-05-07 13:45:10.366 
CCAASTRA.L  2013-05-08 02:23:23.505 2013-05-08 04:18:05.096 

我的學生可以在一天內登錄並註銷很多時間,並可在登錄後的另一天登出

我該做什麼?

回答

0
SELECT b.studentname, 
CASE 
    WHEN a.eventtype = 1 
    THEN a.eventdatetime 
    END AS login, 
CASE 
    WHEN a.eventtype = 7 
    THEN a.eventdatetime 
    END AS logout 

FROM student b INNER JOIN logstudent a ON b.studentid = a.studentid 
WHERE b.active AND (a.eventtype = 1 OR a.eventtype = 7) 
+0

如果我嘗試通過輸出添加組爲false –

+0

現在更新我的答案這應該工作 – Siva