All.. I am new to SQL writing and need help with this custom sql that was already written in report writer.
Request - To report on sites for the following 30 days where we filter out hours 11pm to 6am mon - friday and all weekends (sat/sun) - so we are only reporting on business hours.
Sql is below
SELECT | Nodes.NodeID, Nodes.CustomerID as [Site Number], Nodes.CustomerName AS [Site Name], AVG(FMC_AvailabilityByDays.Availability) |
AS [Average Availability], ISNULL(FMC_OutagesLast30Days.Outages, 0) AS '# Outages', | |
ISNULL(FMC_OutageDurationLast30Days.TotalOutageDuration, 0) AS 'Total Outage Duration' | |
FROM | Nodes INNER JOIN |
FMC_AvailabilityByDays ON Nodes.NodeID = FMC_AvailabilityByDays.NodeID LEFT OUTER JOIN | |
FMC_OutageDurationLast30Days ON Nodes.NodeID = FMC_OutageDurationLast30Days.nodeid LEFT OUTER JOIN | |
FMC_OutagesLast30Days ON Nodes.NodeID = FMC_OutagesLast30Days.NodeID | |
WHERE | (FMC_AvailabilityByDays.datetime BETWEEN DATEADD(day, - 30, DateDiff(dd, 0, getdate())) AND DATEADD(day, - 1, DateDiff(dd, 0, getdate()))) AND |
((Nodes.LocationType like '%Clinic%') OR (Nodes.LocationType = 'Dialysis Location')) AND (Nodes.DeviceType = 'Router') AND (Nodes.Application IS NULL) AND | |
(Nodes.UnManaged = 0) |
GROUP BY Nodes.CustomerName, Nodes.CustomerID, Nodes.NodeID, FMC_OutageDurationLast30Days.TotalOutageDuration, FMC_OutagesLast30Days.Outages
ORDER BY [Average Availability]