Report: Client-> Zugewiesene Endgeräte



  • Hallo zusammen,
    ich versuche einen Report zur Kontrolle der zugewiesenen Endgeräte zu erstellen, leider bekomme ich es nicht hin.

    Es sollen alle Clients mit deren zugewiesenen Endgeräten angezeigt werden, wie kann ich dieses umsetzen?

    Vielen Dank im Voraus.


  • i-doit Kenner

    Hallo Chris1980,

    folgender Report listet die Informationen aus der Kategorie "Arbeitsplatzkomponenten" des Objekttypen Client (ID: 10) auf:

    SELECT
    j1.isys_obj__id AS id,
    j1.isys_obj__title AS 'Client',
    isys_obj_type__title AS 'Objekttyp',
    COUNT(isys_catg_logical_unit_list__isys_obj__id__parent) AS 'Anzahl',
    GROUP_CONCAT(j2.isys_obj__title ORDER BY j2.isys_obj__title SEPARATOR ', ') AS 'Zugewiesenes Endgeraet'

    FROM isys_obj AS j1

    LEFT JOIN isys_catg_logical_unit_list
    ON j1.isys_obj__id = isys_catg_logical_unit_list__isys_obj__id__parent

    LEFT JOIN isys_obj AS j2
    ON isys_catg_logical_unit_list__isys_obj__id = j2.isys_obj__id

    LEFT JOIN isys_obj_type
    ON isys_obj_type__id = j2.isys_obj__isys_obj_type__id

    WHERE TRUE
    AND j1.isys_obj__isys_obj_type__id = 10
    AND j1.isys_obj__status = 2

    GROUP BY
    j1.isys_obj__title, isys_obj_type__title

    ORDER BY
    j1.isys_obj__title, isys_obj_type__title

    Ist das was Du brauchst?

    Gruss,
    jkondek



  • Hallo jkondek,
    vielen Dank dafür. Das ist genau das was ich benötige. Eine Frage hätte ich jedoch:
    Wie könnte ich zusäzlich noch die Seriennummern anzeigen lassen?

    Gruß

    Chris


  • i-doit Kenner

    Hallo Chris,

    die Seriennummern der Clients oder der Endgeraete?

    Bin mal von den der Clients ausgegangen (Aenderungen in rot):

    SELECT
    j1.isys_obj__id AS id,
    j1.isys_obj__title AS 'Client',
    isys_catg_model_list__serial AS 'Seriennummer',
    isys_obj_type__title AS 'Objekttyp',
    COUNT(isys_catg_logical_unit_list__isys_obj__id__parent) AS 'Anzahl',
    GROUP_CONCAT(j2.isys_obj__title ORDER BY j2.isys_obj__title SEPARATOR ', ') AS 'Zugewiesenes Endgeraet'

    FROM isys_obj AS j1

    LEFT JOIN isys_catg_logical_unit_list
    ON j1.isys_obj__id = isys_catg_logical_unit_list__isys_obj__id__parent

    LEFT JOIN isys_obj AS j2
    ON isys_catg_logical_unit_list__isys_obj__id = j2.isys_obj__id

    LEFT JOIN isys_obj_type
    ON isys_obj_type__id = j2.isys_obj__isys_obj_type__id

    LEFT JOIN isys_catg_model_list
    ON isys_catg_model_list__isys_obj__id = j1.isys_obj__id

    WHERE TRUE
    AND j1.isys_obj__isys_obj_type__id = 10
    AND j1.isys_obj__status = 2

    GROUP BY
    j1.isys_obj__title, isys_obj_type__title

    ORDER BY
    j1.isys_obj__title, isys_obj_type__title

    Gruss,
    jkondek



  • Hallo jkondek,
    das klappt super. Vielen Dank noch einmal. Wenn ich den Endgeräten ebenfalls die Seriennummern anzeigen lassen möchte, geht das ebenfalls über die Commandozeile isys_catg_model_list__serial AS 'Seriennummer?

    Das wäre auch die letzte Frage, versprochen.

    Gruß

    Chris


  • i-doit Kenner

    Hallo Chris,

    prinzipiell ja, allerdings musst Du dabei bedenken, dass Du einen weiteren JOIN in die Tabelle isys_catg_model_list benoetigst, diesmal mit der ID der Endgeraete.
    Ausserdem muss die Tabelle bei beiden JOINS eine eigene Variable erhalten (AS xxx), da die Ausgabe sonst mehrdeutig waere.

    Koennte dann z.B. so aussehen (Aenderungen in rot):

    SELECT
    j1.isys_obj__id AS id,
    j1.isys_obj__title AS 'Client',
    j3.isys_catg_model_list__serial AS 'Seriennummer',
    isys_obj_type__title AS 'Objekttyp',
    COUNT(isys_catg_logical_unit_list__isys_obj__id__parent) AS 'Anzahl',
    GROUP_CONCAT(j2.isys_obj__title ORDER BY j2.isys_obj__title SEPARATOR ', ') AS 'Zugewiesenes Endgeraet',
    GROUP_CONCAT(j4.isys_catg_model_list__serial ORDER BY j2.isys_obj__title SEPARATOR ', ') AS 'Seriennummer Endgeraet'

    FROM isys_obj AS j1

    LEFT JOIN isys_catg_logical_unit_list
    ON j1.isys_obj__id = isys_catg_logical_unit_list__isys_obj__id__parent

    LEFT JOIN isys_obj AS j2
    ON isys_catg_logical_unit_list__isys_obj__id = j2.isys_obj__id

    LEFT JOIN isys_obj_type
    ON isys_obj_type__id = j2.isys_obj__isys_obj_type__id

    LEFT JOIN isys_catg_model_list AS j3
    ON j3.isys_catg_model_list__isys_obj__id = j1.isys_obj__id

    LEFT JOIN isys_catg_model_list AS j4
    ON j4.isys_catg_model_list__isys_obj__id = j2.isys_obj__id

    WHERE TRUE
    AND j1.isys_obj__isys_obj_type__id = 10
    AND j1.isys_obj__status = 2

    GROUP BY
    j1.isys_obj__title, isys_obj_type__title

    ORDER BY
    j1.isys_obj__title, isys_obj_type__title

    Es ist auch moeglich, die letzten zwei Spalten (Endgeraet + Seriennummer) in einer Spalte anzuzeigen, dafuer einfach die beiden letzten Zeilen im SELECT ("GROUP_CONCAT(…") gegen folgendes austauschen:

    (CASE
    WHEN j4.isys_catg_model_list__serial IS NOT NULL THEN
    GROUP_CONCAT(j2.isys_obj__title,' (',j4.isys_catg_model_list__serial,')' ORDER BY j2.isys_obj__title SEPARATOR ', ')
    ELSE GROUP_CONCAT(j2.isys_obj__title,' (–-)' ORDER BY j2.isys_obj__title SEPARATOR ', ')
    END) AS 'Zugewiesenes Endgeraet (Seriennummer)'

    Eine weitere Moeglichkeit waere zu sagen, dass alle Endgeraete in einer eigenen Zeile angezeigt werden sollen, anstatt diese bei gleichem Objekttyp zu gruppieren.
    Das ist aber Geschmackssache und jedem selbst ueberlassen 😉

    Gruss,
    jkondek


Log in to reply
 


Datenschutz / Privacy Policy