У меня есть таблица на SQL сервере 2017:
Статистика использования
для создания таблицы:
INSERT INTO [dbo].[Statistics]
([DeviceName]
,[ConnectStatistics]
,[RunningStatistics]
,[DateTime]
,[PcName])
VALUES
(<DeviceName, varchar(50),>
,<ConnectStatistics, bit,>
,<RunningStatistics, bit,>
,<DateTime, datetime,>
,<PcName, varchar(50),>)
GO
INSERT INTO [dbo].[Statistics] (DeviceName,ConnectStatistics,RunningStatistics,DateTime,PcName)
VALUES ('Regatron_1', 1 , 0 , '2019-02-27 08:00:00','PC1'),
('Regatron_1', 1 , 1 , '2019-02-27 08:10:00','PC1'),
('Regatron_1', 1 , 0 , '2019-02-27 08:50:00','PC1'),
('Regatron_1', 1 , 1 , '2019-02-27 09:20:00','PC1'),
('Regatron_1', 0 , 0 , '2019-02-27 09:40:00','PC1'),
('Regatron_2', 1 , 0 , '2019-02-27 08:00:00','PC2'),
('Regatron_2', 1 , 1 , '2019-02-27 08:10:00','PC2'),
('Regatron_2', 1 , 0 , '2019-02-27 08:50:00','PC2'),
('Regatron_2', 1 , 1 , '2019-02-27 09:20:00','PC2'),
('Regatron_2', 0 , 0 , '2019-02-27 09:40:00','PC2')
Прикрепленная таблица Описывает статистику использования тестового оборудования для устройств для ConnectStatistics и RunningStatistics с отметкой времени для каждой строки.
Мне нужна помощь, чтобы написать запрос для генерации результата:
время, используемое для каждого устройства в процентах
В случае, если выбранное время находится между «2019-02-27 08:00:00» и «2019-02-27 09:40:00» -> диапазон времени составляет 1,4
Regatron_1_ConnectStatistics -> from 8:00 to 09:40 = 1.4
Regatron_1_RunningStatistics -> from 08:10 to 08:50 and 09:20 to 09:40 = 1
Regatron_2_ConnectStatistics -> from 8:00 to 09:40 = 1.4
Regatron_2_RunningStatistics -> from 08:10 to 08:50 and 09:20 to 09:40 = 1 The answer:
Regatron_1_ConnectStatistics(%) = (1.4/1.4)*100
Regatron_1_RunningStatistics(%) = (1/1.4)*100
Regatron_2_ConnectStatistics(%) = (1.4/1.4)*100
Regatron_2_RunningStatistics(%) = (1/1.4)*100
Может ли кто-нибудь помочь мне написать правильный запрос для этого?
Спасибо