Announcement

Collapse
No announcement yet.

SQL-Abfrage (WHERE MAX)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    ...AND t2.Datum = Datumoder

    mit HAVING

    Comment


    • #17
      Originally posted by Markus Kinzler View Post
      ...AND t2.Datum = Datumoder

      mit HAVING
      Tut mir leid, wenn ich mich ein bisschen blöd anstelle, was meinst Du damit?
      Wie muss ich vorgehen?

      Comment


      • #18
        Da fehlt nur die Art des Joins; also INNER oder LEFT oder ..

        [HIGHLIGHT=SQL]
        SELECT t2.System, t1.Objektname, t2.Mandant, MAX(t1.Datum) AS Datum , t2.Zeit, t2.Aktion
        FROM Tabelle t1
        INNER JOIN Tabelle t2 ON t2.Objektname = t1.Objektname AND t2.Datum = Max( t1.datum)
        GROUP BY t1.Objektname, t2.System, t2.Mandant, t2.Zeit, z2.Aktion
        [/HIGHLIGHT]

        Olaf
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #19
          Originally posted by O. Helper View Post
          Da fehlt nur die Art des Joins; also INNER oder LEFT oder ..

          [HIGHLIGHT=SQL]
          SELECT t2.System, t1.Objektname, t2.Mandant, MAX(t1.Datum) AS Datum , t2.Zeit, t2.Aktion
          FROM Tabelle t1
          INNER JOIN Tabelle t2 ON t2.Objektname = t1.Objektname AND t2.Datum = Max( t1.datum)
          GROUP BY t1.Objektname, t2.System, t2.Mandant, t2.Zeit, z2.Aktion
          [/HIGHLIGHT]

          Olaf
          Hallo,

          dann kommt folgender Fehler:
          Aggregatfunktion in JOIN-Operation (t2.Objektname = t1.Objektname AND t2.Datum = Max(t1.datum)) nicht möglich.

          Gruß
          hoschi

          Comment


          • #20
            Nimm den Vergleich auf das MAX() aus WHERE raus und schreib es in das HAVING

            Comment


            • #21
              Nach Anregungen von frauwue habe ich die Abfrage nun in eine Abfrage mit Subselect überführt:
              [highlight="sql"]
              SELECT
              t1.System, t1.Objektname, t1.Mandant, t1.Datum, t1.Zeit, t1.Aktion
              FROM
              Tabelle t1
              WHERE
              t1.datum in
              (select max(datum) from tabelle where objektname = t1.objektname);
              [/highlight]

              Comment


              • #22
                Hallo alle zusammen,
                ich habe mir das jetzt aus all Euren Anregungen zusammengebastelt:

                SELECT t1.System, t1.Objektname, t1.Mandant, max([datum])
                FROM Liste AS t1
                GROUP BY t1.System, t1.Objektname, t1.Mandant;

                Comment


                • #23
                  Originally posted by Markus Kinzler View Post
                  Nach Anregungen von frauwue habe ich die Abfrage nun in eine Abfrage mit Subselect überführt:
                  [highlight="sql"]
                  SELECT
                  t1.System, t1.Objektname, t1.Mandant, t1.Datum, t1.Zeit, t1.Aktion
                  FROM
                  Tabelle t1
                  WHERE
                  t1.datum in
                  (select max(datum) from tabelle where objektname = t1.objektname);
                  [/highlight]
                  Das funktioniert auch! Prima, danke!

                  Comment

                  Working...
                  X