Report meldet SQL-Fehler



  • i-doit 1.4.3 pro

    Hallo,

    habe eben einen Report erstellt mit folgenden Kriterien:
    Titel: Telefonverkabelung
    Objekte mit leeren Verknüpfungen anzeigen? Ja

    Gewählte Attribute: Name (Allgemein), Anschlussart (Anschlüsse), Verbunden mit Anschluss (Anschlüsse)
    Bedingungen: Kategorie: Telefon/Fax / Attribut: Typ = ISDN  ODER  Typ = Voip

    Sobald ich auf Ausgabe prüfen Klicke kommt:
    Ein Fehler ist aufgetreten: Database error : Query error: 'SELECT obj_main.isys_obj__id AS 'id', obj_main.isys_obj__title AS 'LC__UNIVERSAL__TITLE###1', j1.isys_connection_type__title AS 'LC__CATG__CONNECTOR__CONNECTION_TYPE###50', j2.isys_obj__id AS 'LC__CATG__CONNECTOR__ASSIGNED_CONNECTOR###50' FROM isys_obj AS obj_main INNER JOIN isys_cmdb_status AS obj_main_status ON obj_main_status.isys_cmdb_status__id = obj_main.isys_obj__isys_cmdb_status__id LEFT JOIN isys_catg_connector_list AS j2 ON j2.isys_catg_connector_list__isys_obj__id = obj_main.isys_obj__id LEFT JOIN isys_connection_type AS j1 ON j1.isys_connection_type__id = j2.isys_catg_connector_list__isys_connection_type__id LEFT JOIN isys_catg_connector_list AS j6 ON j6.isys_catg_connector_list__isys_obj__id = obj_main.isys_obj__id AND j6.isys_catg_connector_list__assigned_category = 'C__CATG__CONNECTOR' LEFT JOIN isys_catg_connector_list AS j4 ON j4.isys_catg_connector_list__isys_cable_connection__id = j6.isys_catg_connector_list__isys_cable_connection__id AND j4.isys_catg_connector_list__id != j6.isys_catg_connector_list__id LEFT JOIN isys_catg_telephone_fax_list AS j10 ON j10.isys_catg_telephone_fax_list__isys_obj__id = obj_main.isys_obj__id LEFT JOIN isys_telephone_fax_type AS j9 ON j9.isys_telephone_fax_type__id = j10.isys_catg_telephone_fax_list__isys_telephone_fax_type__id WHERE TRUE AND ( (j9.isys_telephone_fax_type__id = '3' )OR (j9.isys_telephone_fax_type__id = '2' )) ORDER BY obj_main.isys_obj__id ASC LIMIT 0, 25;': Unknown column 'j2.isys_obj__id' in 'field list' .

    Speichere ich den Report und führe diesen aus kommt:
    Nachricht
    Database error : Query error: 'SELECT
    obj_main.isys_obj__id AS 'id',
    obj_main.isys_obj__title AS 'LC__UNIVERSAL__TITLE###1',
    j1.isys_connection_type__title AS 'LC__CATG__CONNECTOR__CONNECTION_TYPE###50',
    j2.isys_obj__id AS 'LC__CATG__CONNECTOR__ASSIGNED_CONNECTOR###50'

    FROM isys_obj AS obj_main
    INNER JOIN isys_cmdb_status AS obj_main_status ON obj_main_status.isys_cmdb_status__id = obj_main.isys_obj__isys_cmdb_status__id
    LEFT JOIN isys_catg_connector_list AS j2 ON j2.isys_catg_connector_list__isys_obj__id = obj_main.isys_obj__id
    LEFT JOIN isys_connection_type AS j1 ON j1.isys_connection_type__id = j2.isys_catg_connector_list__isys_connection_type__id
    LEFT JOIN isys_catg_connector_list AS j6 ON j6.isys_catg_connector_list__isys_obj__id = obj_main.isys_obj__id AND j6.isys_catg_connector_list__assigned_category = 'C__CATG__CONNECTOR'
    LEFT JOIN isys_catg_connector_list AS j4 ON j4.isys_catg_connector_list__isys_cable_connection__id = j6.isys_catg_connector_list__isys_cable_connection__id AND j4.isys_catg_connector_list__id != j6.isys_catg_connector_list__id
    LEFT JOIN isys_catg_telephone_fax_list AS j10 ON j10.isys_catg_telephone_fax_list__isys_obj__id = obj_main.isys_obj__id
    LEFT JOIN isys_telephone_fax_type AS j9 ON j9.isys_telephone_fax_type__id = j10.isys_catg_telephone_fax_list__isys_telephone_fax_type__id

    WHERE TRUE
    AND ( (j9.isys_telephone_fax_type__id = '3' )OR (j9.isys_telephone_fax_type__id = '2' )) ORDER BY obj_main.isys_obj__id ASC;':
    Unknown column 'j2.isys_obj__id' in 'field list'


    Der Fehler passiert erst, wenn ich das Attribut "Verbunden mit Anschluss (Anschlüsse)" hinzufüge, nach dem ich zuvor ein anderes Attribut hinzufügte.
    Besteht die Liste der gewählten Attribute nur aus "Name (Allgemein)" und "Verbunden mit Anschluss (Anschlüsse)", passiert der SQL-Error nicht, es wird aber unter "Verbunden mit Anschluss (Anschlüsse)" nur die ID dieses Attributes ausgegeben und nicht der Name des hinterlegten Anschlusses.

    LG StefanP


  • i-doit Kenner

    Hallo StefanP,

    versuch mal folgenden Report:

    –-
    SELECT
    j1.isys_obj__id AS 'id',
    j1.isys_obj__title AS 'Name',
    -- isys_catg_connector_list__title AS 'Anschluss Telefon/Fax',
    isys_connection_type__title AS 'Anschlussart',
    j2.isys_obj__title AS 'Verbunden mit Anschluss'

    FROM isys_obj AS j1

    LEFT JOIN isys_catg_telephone_fax_list
    ON isys_catg_telephone_fax_list__isys_obj__id = j1.isys_obj__id

    LEFT JOIN isys_telephone_fax_type
    ON isys_telephone_fax_type__id = isys_catg_telephone_fax_list__isys_telephone_fax_type__id

    LEFT JOIN isys_catg_connector_list
    ON isys_catg_connector_list__isys_obj__id = j1.isys_obj__id

    LEFT JOIN isys_connection_type
    ON isys_connection_type__id = isys_catg_connector_list__isys_connection_type__id

    LEFT JOIN isys_catg_relation_list
    ON isys_catg_relation_list__id = isys_catg_connector_list__isys_catg_relation_list__id

    LEFT JOIN isys_obj AS j2
    ON j2.isys_obj__id = isys_catg_relation_list__isys_obj__id__master

    WHERE TRUE
    AND j1.isys_obj__isys_obj_type__id = 38
    AND (isys_telephone_fax_type__id = '2'
    OR isys_telephone_fax_type__id = '3' )

    ORDER BY j1.isys_obj__title ASC

    In der letzten Spalte 'Verbunden mit Anschluss' wird lediglich das Objekt ausgegeben, nicht aber der Port. Reicht Dir das so?

    Gruss,
    jkondek



  • Hallo StefanP,

    danke das du den Fehler gefunden hast. Dieser Fehler wird ab dem nächsten Minor Release gefixt sein. Wenn du den Namen noch mit ausgeben willst musst du wenn du das Attribut ausgewählt hast auf die Lupe drücken dann öffnet sich ein weiterer Selektor wo du dann unter Allgemein den Namen auswählen kannst.

    Gruß
    vqh



  • Hallo,

    ich habe nun die 1.4.4 pro laufen, der SQL fehler kommt nun nicht mehr, aber dafür ist das Ergebnis des Reports kurios.
    Siehe Anhang ( 001 und 002 )

    Sobald ich das Attribut "Verbunden mit Anschluss ( Anschlüsse)" über das Lupensymbol mit einem weiteren Attribut erweitere, multiplizieren sich die Ergebnisse des Reports.
    Ohne dem erweiterten Attribut passt das Ergebnis, nur wird eben zB. der Anschlussname nicht aufgelöst sondern nur die ID.
    Siehe Anhang ( 003 )

    Mache ich da was falsch ?

    LG Stefan

    idoit_144_pro_report_anschl_001.jpg
    idoit_144_pro_report_anschl_002.jpg
    idoit_144_pro_report_anschl_003.jpg



  • Hi Stefan,

    das liegt daran, dass Du mehrere Anschlüsse für das Ci eingetragen hast. Die Report Engine löst dann jeden verknüpften Anschluss in einer weiteren Zeile auf. Eine Idee unserseits ist hier aktuell, die Namen der darunterliegenden Ci's nicht mehr darzustellen (so ähnlich wie in der Listeneditierung). Damit klar ersichtlich ist das alles ab der zweiten Zeile noch zu dem obenstehenden CI gehört.

    Des Weiteren planen wir ebenso eine Option, dass die Ergebnisse in einer Zeile bleiben, dann in der zweiten Spalte (hier Bezeichnung (Verbunden mit Anschluss)) aber kommasepariert dargestellt werden und die Ergebnisliste nicht vertikal skaliert, sondern horizontal. 😉

    Wir sehen das so oder so nicht direkt als Fehler der Engine, sondern planen Optionen, mit dem Verhalten umzugehen und die Darstellung zu optimieren 🙂
    Die oben beschriebenen Verbesserungen werden allerdings wahrscheinlich erst zur 1.5 Anfang nächsten Jahres erscheinen. Vorher schaffen wir es leider nicht.

    Gruß,
    Dennis



  • Hallo,

    hat sich hier inzwischen etwas getan?

    Arbeite gerade mit der 1.5.3 Pro und das Phänomen tritt so immer noch auf:

    Sobald ich das Attribut "Verbunden mit Anschluss ( Anschlüsse)" über das Lupensymbol mit einem weiteren Attribut erweitere, multiplizieren sich die Ergebnisse des Reports.
    Ohne dem erweiterten Attribut passt das Ergebnis, nur wird eben zB. der Anschlussname nicht aufgelöst sondern nur die ID.

    Viele Grüße
    lywa-15


 


Datenschutz / Privacy Policy