1

私はこのような出席プログラムからmysqlデータ(テーブル)を持っています:

+--------+--------------------+-----------+
| userid | checktime          | checktype | 
+-----------------------------+-----------+
|      1 | 26/04/2013 8:05:17 | I         |
|      2 | 26/04/2013 8:05:17 | I         |
|      2 | 26/04/2013 17:28:47| O         |
|      3 | 26/04/2013 17:32:24| O         |
+-----------------------------------------+

そして、私はこのようなプレビューが欲しい:

+--------+--------------------+---------------------+
| userid | Login time         | Logout time         | 
+-----------------------------+---------------------+
|      1 | 26/04/2013 8:05:17 | Null                |
|      2 | 26/04/2013 8:05:17 | 26/04/2013 17:28:47 |
|      3 | Null               | 26/04/2013 17:32:24 |
+---------------------------------------------------+

この出力をプレビューするには、どのようにクエリを作成すればよいですか?? どんな提案も私にとって役に立ちます.助けてください...

4

1 に答える 1

1

あなたが提供した情報を使用して、このクエリはそれを行う必要があります:

SELECT
  userid,
  max(if(checktype = 'I', checktime, NULL)) loginTime,
  max(if(checktype = 'O', checktime, NULL)) logoutTime
FROM t
GROUP BY userid

出力:

| USERID |          LOGINTIME |          LOGOUTTIME |
|--------|--------------------|---------------------|
|      1 | 26/04/2013 8:05:17 |              (null) |
|      2 | 26/04/2013 8:05:17 | 26/04/2013 17:28:47 |
|      3 |             (null) | 26/04/2013 17:32:24 |

ここでフィドル。

于 2013-10-18T04:05:29.453 に答える