2016-08-25 2 views
0

Ich versuche, Antivirus-Ereignisse anzuzeigen, die die Anzahl der Ereignisse für AV und Firewall innerhalb von 24 Stunden anzeigen. Grundsätzlich versuche ich die gleiche Spalte unter anderen Bedingungen zu summieren. Ich habe versucht, eine CASE WHEN-Anweisung in der SUMME-Funktion zu verwenden, aber es gibt keine Ergebnisse zurück.kombiniert zwei Summenergebnisse?

SELECT 
     events.arc_sourceHostName, 
     SUM(CASE WHEN events.arc_deviceEventClassId="fw" THEN events.arc_baseEventCount ELSE 0 END) AS "FWCount", 
     SUM(CASE WHEN events.arc_deviceEventClassId="av" THEN events.arc_baseEventCount ELSE 0 END) AS "AVCount" 

FROM events 

WHERE 
     events.arc_deviceVendor = "BitDefender" 
     AND 
     (events.arc_deviceEventClassId="fw" 
     OR 
     events.arc_deviceEventClassId="av") 


GROUP BY 
     events.arc_sourceHostName 

ORDER BY FWCount DESC 

WEITERE DETAILS

erwartet die Hostnamen durch die Anzahl der AV-Veranstaltung gefolgt, um zu sehen, durch die Anzahl der Firewall-Ereignisse verfolgt.

Hostname AVCount FWCount 
Host1  5   4 
Host2  3   5 
+0

Haben Sie versucht, eine Zählerabfrage auszuführen, um festzustellen, ob tatsächlich Datensätze mit diesen 'where'-Bedingungen abgerufen werden sollen? – hchaznedaroglu

+0

Sorry für die falsche Paste, aber das ist meistens die korrigierte Version, die ich ausprobiert habe. Ja, ich erhalte Ereignisse für die WHERE-Anweisung ohne die Summenanweisung. – Jack

+2

Das läuft? Warum wird "arc_deviceEventClassId" an anderer Stelle "deviceEventClassId" genannt? – jlasierra

Antwort

0

Funktioniert diese Abfrage, was Sie wollen?

SELECT e.arc_sourceHostName, 
     SUM(CASE WHEN e.arc_deviceEventClassId = 'fw' THEN e.arc_baseEventCount ELSE 0 END) AS FWCount, 
     SUM(CASE WHEN e.arc_deviceEventClassId = 'av' THEN e.arc_baseEventCount ELSE 0 END) AS AVCount 
FROM events e 
WHERE e.arc_deviceVendor = 'BitDefender' AND 
     e.deviceEventClassId IN ('fw', 'av') 
GROUP BY e.arc_sourceHostName 
ORDER BY FWCount DESC; 

Wenn dies nicht funktioniert, dann keine Zeilen können die WHERE Bedingungen erfüllen.

+0

Gordon: Ich bekomme einen Fehler, wenn ich Ihre Abfrage ausführen. "Kann keine fallunabhängige Abfrage erhalten, die Original-SQL zurückgibt" – Jack

+0

okay, also nachdem viele alles neu geschrieben haben, weil ich offensichtlich viele Fehler gemacht habe, habe ich es geschafft, dass diese Abfrage funktioniert. – Jack

Verwandte Themen