Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "Czas przestoju danego urządzenia w ciągu zadanego okresu czasu, nie wliczając w to sobót i niedziel" - należy zidentyfikować okresy przestoju urządzenia, które nie kolidują z sobotami i niedzielami, a następnie obliczyć sumę czasu przestoju.
- ######################################################################################
- DECLARE @StartDate DATETIME = '2024-01-01'; -- Data początkowa
- DECLARE @EndDate DATETIME = '2024-12-31'; -- Data końcowa
- SELECT device_id,
- SUM(DATEDIFF(MINUTE, failure_start, failure_end)) AS TotalDowntimeMinutes
- FROM Device_Failures
- WHERE failure_start >= @StartDate AND failure_end <= @EndDate
- AND DATEPART(WEEKDAY, failure_start) NOT IN (1, 7) -- Wyklucz soboty (7) i niedziele (1)
- AND DATEPART(WEEKDAY, failure_end) NOT IN (1, 7)
- GROUP BY device_id;
- #############################################################################################
- @StartDate i @EndDate określają zakres czasu, dla którego chcemy obliczyć czas przestoju.
- Warunek WHERE ogranicza wyniki do okresów przestoju, które mieszczą się w zadanym zakresie czasu i nie kolidują z sobotami i niedzielami.
- DATEDIFF(MINUTE, failure_start, failure_end) oblicza różnicę czasu między failure_start i failure_end w minutach dla każdego okresu przestoju.
- SUM agreguje te różnice czasu dla każdego urządzenia, aby obliczyć łączny czas przestoju.
- GROUP BY device_id grupuje wyniki według identyfikatora urządzenia.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement