如何显示 table 结果列并将其显示在行上
How to show table result column and show it on rows
谁能帮我创建一个 table,我可以在其中使用其他行作为列?
我的示例数据库如下所示:
| NAME | DATE | TIME |TYPE |
| john | 03-05-2017 | 06:00 | AM IN
| john | 03-05-2017 | 11:00 | AM OUT
| john | 03-05-2017 | 13:00 | PM IN
| john | 03-05-2017 | 16:00 | PM OUT
| john | 03-06-2017 | 06:00 | AM IN
| john | 03-06-2017 | 11:00 | AM OUT
| john | 03-07-2017 | 06:00 | AM IN
| john | 03-07-2017 | 11:00 | AM OUT
| john | 03-07-2017 | 13:00 | PM IN
| john | 03-07-2017 | 16:00 | PM OUT
如何在 PHP 中显示这样 table:
| DATE | AM IN |AM OUT | PM IN | PMOUT
03-05-2017 06:00 |11:00 | 13:00 |16:00
03-06-2017 06:00 |11:00 | NULL | NULL
03-07-2017 06:00 |11:00 | 13:00 |16:00
我已经上传了图片以便更好地解释它
我想你只是想要一个数据透视表查询:
SELECT
NAME,
DATE,
MAX(CASE WHEN TYPE = 'AM IN' THEN TIME END) AS AM_IN,
MAX(CASE WHEN TYPE = 'AM OUT' THEN TIME END) AS AM_OUT,
MAX(CASE WHEN TYPE = 'PM IN' THEN TIME END) AS PM_IN,
MAX(CASE WHEN TYPE = 'PM OUT' THEN TIME END) AS PM_OUT
FROM yourTable
GROUP BY
NAME, DATE;
谁能帮我创建一个 table,我可以在其中使用其他行作为列?
我的示例数据库如下所示:
| NAME | DATE | TIME |TYPE |
| john | 03-05-2017 | 06:00 | AM IN
| john | 03-05-2017 | 11:00 | AM OUT
| john | 03-05-2017 | 13:00 | PM IN
| john | 03-05-2017 | 16:00 | PM OUT
| john | 03-06-2017 | 06:00 | AM IN
| john | 03-06-2017 | 11:00 | AM OUT
| john | 03-07-2017 | 06:00 | AM IN
| john | 03-07-2017 | 11:00 | AM OUT
| john | 03-07-2017 | 13:00 | PM IN
| john | 03-07-2017 | 16:00 | PM OUT
如何在 PHP 中显示这样 table:
| DATE | AM IN |AM OUT | PM IN | PMOUT
03-05-2017 06:00 |11:00 | 13:00 |16:00
03-06-2017 06:00 |11:00 | NULL | NULL
03-07-2017 06:00 |11:00 | 13:00 |16:00
我已经上传了图片以便更好地解释它
我想你只是想要一个数据透视表查询:
SELECT
NAME,
DATE,
MAX(CASE WHEN TYPE = 'AM IN' THEN TIME END) AS AM_IN,
MAX(CASE WHEN TYPE = 'AM OUT' THEN TIME END) AS AM_OUT,
MAX(CASE WHEN TYPE = 'PM IN' THEN TIME END) AS PM_IN,
MAX(CASE WHEN TYPE = 'PM OUT' THEN TIME END) AS PM_OUT
FROM yourTable
GROUP BY
NAME, DATE;