phpMyAdmin mysql / mariaDB组无法正常工作

时间:2018-02-13 15:33:00

标签: sql phpmyadmin

我有一些关于电车和他们去的电台的数据。每辆电车都有一种颜色(蓝色,黄色,紫色),它们在不同时间到达车站。我正在尝试对数据进行分组,以便它们作为特定站点到达的时间将显示在一行中。

例如我有以下数据行

ID    stationID     colour     time
1       11          Yellow      13:00
2       11          Blue        14:14
3       11          Purple      15:30

我想将其分组到以下内容:

StationID     YellowTime      BlueTime      PurpleTime
11             13:00           14:14         15:30

我正在使用案例陈述和小组来做这件事,但是我得到了意想不到的结果。

我的查询在

之下
SELECT StationID,Station_name,
 (CASE
 WHEN ID=1 THEN Time 
ELSE 'Does not come to this station' END) AS YellowTime,
 (CASE WHEN ID=3 THEN Time 
ELSE 'Does not come to this station' END) AS BlueTime, 
(CASE WHEN ID=2 THEN Time 
ELSE 'Does not come to this station' END) AS PurpleTime 
FROM tram

where Station_name like '%Cathedral%' 
group by StationID

我得到的结果如下

StationID     Station_Name   YellowTime     BlueTime    PurpleTime
11            Cathdral      Does not...      Does no..  10:57:00

它只显示数据集中最后一条记录的时间,而不是全部三条记录。

P.s.yellowTime和blueTime列的值不会到达此站,但我还没有完全写出来以便将它们全部放在一行上。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为这可能有助于遇到这种情况的任何人。我设法找到另一个wya来获得我想要的结果。 我正在使用连接到同一个表,因为case语句不起作用。

这是我使用的查询

SELECT t.StationID,t.Station_name ifnull(t1.Time,'不来这个电台')as yewllowTime, ifnull(t2.Time,'不来这个电台')为purpleTime, ifnull(t3.Time,'不来这个电台')为BlueTime 从电车t 左连接(选择StationID,时间       从电车       其中ID = 1)t1       在t.StationID = t1.StationID上      左连接(选择StationID,时间       从电车       其中ID = 2)t2       在t.StationID = t2.StationID上       左连接(选择StationID,时间       从电车       其中ID = 3)t3       在t.StationID = t3.StationID上 其中station_name喜欢'%Cathedral%' 按t.StationID分组

使用此查询,我得到1行,根据需要为每种颜色提供所有不同的时间。

希望这可以帮助有同样问题的人。