Basically I am trying to use a select for 1 column and another select for all others. I want the COUNT(Interfaces.Caption) AS COUNT_of_Interface_Caption column to only show a count each time the Out_AverageBps/OutBandwidth)*100 and the (In_AverageBps/InBandwidth)*100 goes over 90%. So the end result will be the COUNT_of_Interface_Caption column will only show the number of times an interface when over 90% of usage during the past month and the other columns will show all data for the past month.
Thanks in advance
SET NOCOUNT OFF
SET ROWCOUNT 0
DECLARE @StartDate DateTime
DECLARE @EndDate DateTime
SET @StartDate = DATEADD(d, DATEDIFF(d, 0, DATEADD(m, -1, DATEADD(d, 1 - day(getdate()), getdate()))), 0)
SET @EndDate = DATEADD(ms, -2,DATEADD(d, DATEDIFF(d, 0, DATEADD(d, 1 - day(getdate()), getdate())), 0))
SELECT Nodes.NodeID AS NodeID,
Interfaces.InterfaceID AS InterfaceID,
Nodes.Caption AS NodeName,
Interfaces.Caption AS Interface_Caption,
AVG(Case InBandwidth
When 0 Then 0
Else (In_Averagebps/InBandwidth) * 100
End) AS AVERAGE_of_Recv_Percent_Utilization,
AVG(Case OutBandwidth
When 0 Then 0
Else (Out_Averagebps/OutBandwidth) * 100
End) AS AVERAGE_of_Xmit_Percent_Utilization,
COUNT(Interfaces.Caption) AS COUNT_of_Interface_Caption,
Maxbps_In95,
Maxbps_Out95,
Maxbps_95,
Recieve_Percentage = (Maxbps_In95 / Interfaces.InterfaceSpeed ) * 100,
Transmit_Percentage = (Maxbps_Out95 / Interfaces.InterfaceSpeed) * 100,
Interfaces.InterfaceSpeed AS Interface_Speed
FROM Nodes
LEFT JOIN Interfaces ON Nodes.NodeID = Interfaces.NodeID
LEFT JOIN InterfaceTraffic ON (Interfaces.InterfaceID = InterfaceTraffic.InterfaceID AND InterfaceTraffic.NodeID = Nodes.NodeID)
LEFT JOIN (
SELECT InterfaceID,
dbo.GetInBps95th(InterfaceID, @StartDate, @EndDate) AS Maxbps_In95,
dbo.GetOutBps95th(InterfaceID, @StartDate, @EndDate) AS Maxbps_Out95,
dbo.GetMaxBps95th(InterfaceID, @StartDate, @EndDate) AS Maxbps_95
FROM InterfaceTraffic
GROUP BY InterfaceID
) TrafficStat ON Interfaces.InterfaceID = TrafficStat.InterfaceID
WHERE
(
(Nodes.TBU = 'TBU') AND
(Interfaces.Link_Type = 'Primary Link') AND
(
(DatePart(Hour,DateTime) >= 7) AND
(DatePart(Hour,DateTime) <= 16)) AND
(Case
When InBandwidth+OutBandwidth=0 Then 0
When InBandwidth=0 Then
(Out_Averagebps/OutBandwidth) * 100
When OutBandwidth=0 Then
(In_Averagebps/InBandwidth) * 100
Else
Case
When (Out_AverageBps/OutBandwidth) > (In_AverageBps/InBandwidth) Then
(Out_AverageBps/OutBandwidth)*100
Else
(In_AverageBps/InBandwidth) *100
End
End >= 90)
)
GROUP BY Nodes.NodeID, Interfaces.InterfaceID, Nodes.Caption, Interfaces.Caption, Interfaces.InterfaceSpeed, Maxbps_In95, Maxbps_Out95, Maxbps_95
ORDER BY 3 ASC, 4 ASC