Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login

    ORDER BY ist eingeschränkt

    Scheduled Pinned Locked Moved Entwicklung
    6 Posts 2 Posters 986 Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A Offline
      atikart
      last edited by

      Wenn ich im Report-Manager einen Report erstelle, der ein 'ORDER BY' Statement enthält, kann als Spalte nur 'count' (ohne Anführungszeichen) angegeben werden, ansonsten funktioniert der Report zwar in der Vorschau, nicht aber bei der eigentlichen Ausführung. Kann man das ändern, so daß beliebige Sortierkriterien angeben werden können? Version ist 1.7.1

      1 Reply Last reply Reply Quote 0
      • J Offline
        jkondek
        last edited by

        Hallo atikart,

        kommt bei der Ausfuehrung eine Fehlermeldung?
        Ist das Verhalten in der Demo reproduzierbar? Vielleicht kannst Du einen entsprechenden Report in der Demo anlegen, damit wir uns das anschauen koennen?
        demo.i-doit.com

        Gruss,
        jkondek

        1 Reply Last reply Reply Quote 0
        • A Offline
          atikart
          last edited by

          Der Fehler kommt dadurch zustande, daß i-doit vor der eigentlichen Reportausführung eine Abfrage "(select Count (*) as count)" mit der selben where Clause ausführt. Sobald der Where-Clause ein "ORDER BY xxx" folgt, wirft diese Vorabfrage ein "Column not found in ORDER BY" aus.

          Beispiel:
          SELECT
          obj_main.isys_obj__title AS MyColumn1,
          j1.isys_catg_ip_list__hostname AS MyColumn2

          FROM isys_obj AS obj_main
          LEFT JOIN isys_catg_ip_list AS j1 ON j1.isys_catg_ip_list__isys_obj__id = obj_main.isys_obj__id

          WHERE ( (j1.isys_catg_ip_list__primary = '1' ) )
            AND ( (obj_main.isys_obj__status = '2' ) )

          ORDER BY MyColumn1;

          1 Reply Last reply Reply Quote 0
          • J Offline
            jkondek
            last edited by

            Hallo atikart,

            Du musst einfach nach "obj_main.isys_obj__title" sortieren, anstatt nach der Bezeichnung, wie Du das Feld benannt hast. Dann funktioniert die Abfrage.

            Alternativ:
            Um den Report eine weitere SELECT-Abfrage drum bauen, in welcher dann das ORDER BY auf die von Dir gewaehlten Feld-Bezeichnung ausgefuehrt werden kann.

            Gruss,
            jkondek

            1 Reply Last reply Reply Quote 0
            • A Offline
              atikart
              last edited by

              Das Verwenden von verschachtelten Selects SQL bringt leider keine Hilfe, da in der Vorabfrage beide SELECTs durch ein "Select Count (*) as count" ersetzt werden (siehe Screenshot). Das Verwenden des echten Spaltennamens funktioniert zwar bei obigen Beispiel, läuft aber spätestens dann gegen die Wand, wenn ich eine UNION-Anweisung verwende und daher der echte Spaltenname nicht eindeutig ist.

              Auf jeden Fall möchte ich mich für die schnelle Reaktion bedanken.

              CMDB1.png

              1 Reply Last reply Reply Quote 0
              • J Offline
                jkondek
                last edited by

                Hallo atikart,

                das "SELECT COUNT(*)" kommt eigentlich nur, weil ein Fehler im SQL vorhanden ist.
                Kannst Du mal Dein verschachteltes SQL posten?

                Gruss,
                jkondek

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post