Abfrage Editor
-
Hallo,
ich benötige hilfe beim Abfrage Editor. Leider scheint es keine Möglichkeit zu geben eine Abfrage zu machen, die mir die Installieten Betriebssysteme in verbindung mit den Servern anzeigt.
Danke
-
Hey!
Versuchs mal hiermit:
SELECT DD1.isys_obj__title AS 'spalte1', DD2.isys_obj__title AS 'spalte2' FROM isys_catg_relation_list LEFT JOIN isys_obj DD1 ON isys_catg_relation_list.isys_catg_relation_list__isys_obj__id__master = DD1.isys_obj__id LEFT JOIN isys_obj DD2 ON isys_catg_relation_list.isys_catg_relation_list__isys_obj__id__slave = DD2.isys_obj__id WHERE DD1.isys_obj__isys_obj_type__id = 5 AND DD2.isys_obj__isys_obj_type__id = 35
mfg
-
Gibt es hierbei euch eine Möglichkeit nur die Server eines bestimmten Standortes anzuzeigen?
Danke
-
Hallo,
das ist nicht so einfach umsetzbar, da es eine rekursive Schleife benötigt um diese Objekte im Standort-Pfad zu finden. Ich würde beinahe sagen das es mit "reinem" SQL kaum zu lösen ist.
Mit freundlichen Grüßen
Leo -
Okay, danke schonmal für die Hilfe. Jetzt habe ich aber noch ein anderes Problem, unzwar:
Will ich einen Report erstellen der mit die Server zeigt mit installierter Software jedoch ohne Updates. Jetzt habe ich folgende Abfrage erstellt:
SELECT DISTINCT DD1.isys_obj__title AS 'Server', DD2.isys_obj__title AS 'Betriebssystem', DD3.isys_obj__title AS 'Software',DD4.isys_catg_accounting_list__inventory_no AS 'Inventarnummer' FROM isys_catg_relation_list LEFT JOIN isys_obj DD1 ON isys_catg_relation_list.isys_catg_relation_list__isys_obj__id__master = DD1.isys_obj__id LEFT JOIN isys_obj DD2 ON isys_catg_relation_list.isys_catg_relation_list__isys_obj__id__slave = DD2.isys_obj__id LEFT JOIN isys_obj DD3 ON isys_catg_relation_list.isys_catg_relation_list__isys_obj__id__slave = DD2.isys_obj__id LEFT JOIN isys_catg_accounting_list DD4 ON isys_catg_accounting_list__isys_obj__id = DD1.isys_obj__id WHERE DD1.isys_obj__isys_obj_type__id =5 AND DD2.isys_obj__isys_obj_type__id = 35 AND DD3.isys_obj__isys_obj_type__id = 2 AND (DD3.isys_obj__title = 'Programmxyz' OR DD3.isys_obj__title = 'Programmxyz') Order by Server, Software
Hierbei habe ich jedes einzelne Programm ausgewählt und das ist ziemlich umständig. Jedoch zeigt er mir bei jedem Server die gleiche Software an auch wenn diese darauf nicht installiert ist. Gibt es hierfür eine andere Methode?
Grüße + Danke
Sven
-
Hallo Sven,
es klingt so, als würdest du statt den "LEFT JOIN" Befehlen eher "INNER JOIN" benötigen - Die funktionieren beim selektieren von Daten etwas anders.
Hier gibt es einige interessante Beispiele: http://stackoverflow.com/questions/38549/difference-between-inner-and-outer-joinMit freundlichen Grüßen
Leo -
Hey,
danke schon mal, jedoch führt keines der JOIN Befehle zum gewünschten Ergebnis. Habe alles ausprobiert. LEFT JOIN, RIGHT JOIN, OUTER JOIN, FULL OUTER JOIN, LEFT OUTER JOIN, INNER JOIN. Zeigt mir bei Servern auf denen die Software nicht installiert ist, immernoch die Software an…
SELECT DISTINCT DD1.isys_obj__title AS 'Server', DD2.isys_obj__title AS 'Betriebssystem', DD3.isys_obj__title AS 'Software',DD4.isys_catg_accounting_list__inventory_no AS 'Inventarnummer' FROM isys_catg_relation_list LEFT JOIN isys_obj DD1 ON isys_catg_relation_list.isys_catg_relation_list__isys_obj__id__master = DD1.isys_obj__id LEFT JOIN isys_obj DD2 ON isys_catg_relation_list.isys_catg_relation_list__isys_obj__id__slave = DD2.isys_obj__id INNER JOIN isys_obj DD3 ON isys_catg_relation_list.isys_catg_relation_list__isys_obj__id__slave = DD2.isys_obj__id LEFT JOIN isys_catg_accounting_list DD4 ON isys_catg_accounting_list__isys_obj__id = DD1.isys_obj__id WHERE DD1.isys_obj__isys_obj_type__id =5 AND DD2.isys_obj__isys_obj_type__id = 35 AND DD3.isys_obj__isys_obj_type__id = 2 AND DD3.isys_obj__title = 'Programmxyz' Order by Server, Software
Habe das INNER JOIN an der richtigen Stelle verändert oder?
Danke
Grüße
Sven
-
Auch wenn ich diese Abfrage mache:
SELECT DD1.isys_obj__title AS 'Server', DD2.isys_obj__title AS 'OS', DD3.isys_obj__title AS 'Software' FROM isys_catg_relation_list LEFT JOIN isys_obj DD1 ON isys_catg_relation_list.isys_catg_relation_list__isys_obj__id__master = DD1.isys_obj__id INNER JOIN isys_obj DD2 ON isys_catg_relation_list.isys_catg_relation_list__isys_obj__id__slave = DD2.isys_obj__id INNER JOIN isys_obj DD3 ON isys_catg_relation_list.isys_catg_relation_list__isys_obj__id__slave = DD2.isys_obj__id WHERE DD1.isys_obj__isys_obj_type__id = 5 AND DD1.isys_obj__title like 'nagiosnode' AND DD2.isys_obj__isys_obj_type__id = 35 AND DD3.isys_obj__isys_obj_type__id = 2 Order by Server
zeigt er mir die komplette Software an die im iDoit ist, nicht nur die vom "nagiosnode"… Es zeigt mir eben an das in Spalte 3 (DD3) alles anzeigt werden soll mit id = 2.. Jedoch brauche ich nur die Software die auf dem nagiosnode installier ist.. Wie bekomme ich dann nur diese Information raus?
Danke
-
Hi ich habe ein ähnliches Problem, das aber auch in dieses Thema passt. Und zwar brauche ich das ganze auch für alle Virtuellen Server, demnach habe ich die Zeile:
WHERE DD1.isys_obj__isys_obj_type__id =61
hinzugefügt. Allerdings ist der Report jetzt zu großfür Idoit!
Kann mir vielleicht jemand helfen wie ich diesen Report auf 2 Reports aufteilen kann ?Vielen Dank + Grüße
Hannes
-
Hi ich habe ein ähnliches Problem, das aber auch in dieses Thema passt. Und zwar brauche ich das ganze auch für alle Virtuellen Server, demnach habe ich die Zeile:
WHERE DD1.isys_obj__isys_obj_type__id =61
hinzugefügt. Allerdings ist der Report jetzt zu großfür Idoit!
Kann mir vielleicht jemand helfen wie ich diesen Report auf 2 Reports aufteilen kann ?Vielen Dank + Grüße
Hannes
Hallo Hannes,
was meinst du genau mit "zu groß für i-doit"? Bekommst du zu viele Zeilen zurück?
Am besten schaust du dir dazu mal den "LIMIT" und/oder "OFFSET" an:http://dev.mysql.com/doc/refman/5.0/en/select.html#idp56935072
Viele Grüße
Leo