我不是SQL专家,并且有点卡住。我有一个数据库表,看起来像:
Date | Equipment | Downtime
------------+-----------+---------
2018-10-03 | PLC | 0
2018-10-03 | Robo | 0
2018-10-04 | PLC | 108
2018-10-04 | Robo | 0
对于我正在制作的系统,我需要使用该表来制作图表,但是我需要将设备列分隔为这样的不同列:
Date | Robo(Time) | PLC(Time)
------------+-------------+----------
2018-10-03 | 0 | 0
2018-10-04 | 108 | 0
因此,我将数据存储在以第二行中相应内容命名的列中的第三行中。 有谁知道该怎么做?谢谢您的帮助!
答案 0 :(得分:1)
您可以进行条件聚合:
var arr = [1,2,3,4,5];
function changesArr(t){
t.push(6);
t.push(7);
}
var diffArr = arr.slice();
changesArr(diffArr);
console.log('1 to 5');
console.log(arr);
console.log('1 to 7');
console.log(diffArr);
答案 1 :(得分:1)
另一种方法是在过期时自行联接表:
select PLC.date,
Robo.Downtime as [Robo(Time)],
PLC.Downtime as [PLC(Time)]
FROM table as Robo INNER JOIN table as PLC ON Robo.Date = PLC.Date
AND Robo.Equipment = 'Robo' AND PLC.Equipment = 'PLC'
请注意,我已经完全限定了PLC.date的资格,但是您可以限定任何一个。您只需要选择一个即可,因为既然您加入了自己,那么这是模棱两可的。