繁体   English   中英

在MySQL表中旋转

[英]Pivoting in MySQL table

我有一个名为switch的MySQL表,如下所示:

switchName  switchCondition switchingTime 
----------- --------------- ------------- 
First       ON              10:00      
First       OFF             11:00
Second      ON              10:30      
Third       OFF             13:00      
Third       ON              13:45  

如何通过根据切换条件旋转切换时间,如何使用上表以以下格式将报告显示为html表?

switchName   ON     OFF 
----------- -----  -------
First       10:00   11:00                   
Second      10:30    -        
Third       13:45   13:00

尝试这个:

SELECT s.switchName, 
       MAX(CASE WHEN s.switchCondition = 'ON' THEN s.switchingTime ELSE '-' END) AS SwitchON, 
       MAX(CASE WHEN s.switchCondition = 'OFF' THEN s.switchingTime ELSE '-' END) AS SwitchOFF
FROM switches s 
GROUP BY s.switchName;

另一种方法

SELECT s.switchName, s1.switchingTime, s2.switchingTime
FROM switches s
LEFT JOIN switches s1 ON s.switchName = s1.switchName AND s1.switchCondition = 'ON'
LEFT JOIN switches s2 ON s.switchName = s2.switchName AND s2.switchCondition = 'OFF'
GROUP BY s.switchName

(尽管它将破折号表示为NULL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM