Announcement

Collapse
No announcement yet.

Problem mit MAX-Wert

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

  • Problem mit MAX-Wert

    Hallo, und zwar habe ich folgendes Problem:
    Ich versuche momentan den letzten Eintrag (im Datums-Feld) abzufangen und den dann auf < '05.05.2009' abzufragen.

    Nur bei meiner Abfrage klappt das ganze nicht richtig.
    Er nimmt mir immer irgendein Datum was genau dadrunter liegt und nicht das Maximale Datum was ich hier auch abfragen will.

    Vielleicht kann mir dabei ja jemand helfen !

    Code:
    SELECT MAX(t1.dat)
    FROM tab1 as t1
    WHERE t1.dat < '2009-05-05'
    --->> hier liefert er mir irgend ein Eintrag der kleiner ist

    hab das ganze auch schon mit HAVING probiert
    Code:
    SELECT MAX(t1.dat)
    FROM tab1 as t1
    HAVING MAX(t1.dat) < '2009-05-05'
    --> hier liefert er mir nichts wieder Result 0

  • #2
    SELECT MAX(x.dat)
    FROM (SELECT t1.Dat FROM tab1 as t1
    WHERE t1.dat < '2009-05-05'
    ) AS X

    Comment


    • #3
      woher weiß ich jetzt, dass er genau den max wert nimmt und nicht irgendeinen?

      Comment


      • #4
        Er nimmt den maximalen Wert der Derived Table x

        Comment


        • #5
          hmm muss x.dat dann nicht t1.dat heißen?

          SELECT MAX(t1.dat)
          FROM (SELECT t1.Dat FROM tab1 as t1
          WHERE t1.dat < '2009-05-05'
          ) AS t1

          Comment


          • #6
            Originally posted by luft123 View Post
            hmm muss x.dat dann nicht t1.dat heißen?

            SELECT MAX(t1.dat)
            FROM (SELECT t1.Dat FROM tab1 as t1
            WHERE t1.dat < '2009-05-05'
            ) AS t1
            Wenn Du "AS t1" schreibst dann T1.dat, wenn ich "AS X" schreibe, dann x.dat

            Also mit dem Alias, mit dem Du die Inline-View benennst

            Comment


            • #7
              alles klar dankeschön!

              Comment


              • #8
                Hi,

                prinzipiell müsste Dein Original-Statement funktionieren, auch ohne Aliase:
                SELECT MAX(dat)
                FROM tab1
                WHERE dat < '2009-05-05'

                Kann es sein, dass Du einen Teil Deines SQL verschwiegen hast?
                docendo discimus

                Comment


                • #9
                  Da kann ich frauwue nur beipflichten, das erste Statement ist völlig in Ordnung und muss so ausnahmslos funktionieren.

                  Ich hatte lediglich mal eine ODBC Treiber an der Hand, wo die Aggreationsfunktion "nicht wirklich" implementiert waren, da kam nichts brauchbares raus.

                  BTW, das Feld "dat" ist vom Typ date; nicht etwa ein varchar, wo irgendwas drin stehen könnte?
                  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

                  Working...
                  X