Barbara: Select MAX() Null

Hallo,

ich hoffe ihr könnt mir helfen... Hab da eine mysql query, die das Maximale Datum ermittelt:

SELECT MAX(MP3Date)
FROM MP03THistory as history
WHERE MP3RID IN (SELECT t.MP1RID
           FROM MP02Step as s
            JOIN MP01Task as t USING (MP2RID)
    WHERE s.MP0RID ="43629A33EB1F4D9B983A9500D49D56A9"
   );

Falls der Step keine Tasks hat, sollte das MAX(MP3Date) null sein.... doch es wird immer 1 record zurückgegeben.... und ich weiss nicht warum...... kann mir jemand helfen?

Danke

  1. Hallo,

    ich hoffe ihr könnt mir helfen... Hab da eine mysql query, die das Maximale Datum ermittelt:

    SELECT MAX(MP3Date)
    FROM MP03THistory as history
    WHERE MP3RID IN (SELECT t.MP1RID
               FROM MP02Step as s
                JOIN MP01Task as t USING (MP2RID)
        WHERE s.MP0RID ="43629A33EB1F4D9B983A9500D49D56A9"
       );

    Falls der Step keine Tasks hat, sollte das MAX(MP3Date) null sein.... doch es wird immer 1 record zurückgegeben

    Mit welchem Wert für MAX(MP3Date)?

    Kann es sein, dass es in der Tabelle MP03THistory einen oder mehrere Datensätze gibt, in denen ein Wert in MP3Date und NULL in MP3RID steht?

    SELECT MP3Date, MP3RID FROM MP03THistory WHERE MP3RID IS NULL;

    MP3Date     MP3RID
    yyyy-mm-dd  NULL
    yyyy-mm-dd  NULL

    viele Grüße

    Axel

    1. hallo,

      Kann es sein, dass es in der Tabelle MP03THistory einen oder mehrere Datensätze gibt, in denen ein Wert in MP3Date und NULL in MP3RID steht?

      Nein, kann nicht sein, denn MP3RID ist der primary key der tabelle MP03THistory...

      SELECT MP3Date, MP3RID FROM MP03THistory WHERE MP3RID IS NULL;

      --> weil mp3RID primary ergibt diese query richtigerweise 0 records

      aber es kann sein, dass ein task gar keinen eintrag im MP03THistory (für Task History) hat....

      hoffe du kannst mir weiterhelfen

      barbara

      1. Hallo,

        Falls der Step keine Tasks hat, sollte das MAX(MP3Date) null sein.... doch es wird immer 1 record zurückgegeben

        Mit welchem Wert für MAX(MP3Date)?

        Beantwortest Du meine erste Frage auch noch?

        viele Grüße

        Axel

        1. Hallo Axel,

          Mit welchem Wert für MAX(MP3Date)?

          Beantwortest Du meine erste Frage auch noch?

          ah so... sorry ;) logo:

          NULL wird zurückgegeben

          +--------------+
          | MAX(MP3DATE) |
          +--------------+
          | NULL         |
          +--------------+
          1 row in set (0.00 sec)

          1. Hi,

            +--------------+
            | MAX(MP3DATE) |
            +--------------+
            | NULL         |
            +--------------+
            1 row in set (0.00 sec)

            MAX ist eine Aggregatfunktion und diese geben einen Datensatz zurueck. Was soll daran nicht cool sein?

            Gruss,
            Ludger

            --
            "Wer nicht kaempft hat schon gewonnen."
            1. yo,

              MAX ist eine Aggregatfunktion und diese geben einen Datensatz zurueck. Was soll daran nicht cool sein?

              vielleicht noch zur ergänzung, eine funktion gibt immer genau einen wert zurück (nicht datensatz), auch wenn die funktion auf eine leere tabelle ausgeführt werden würde.

              Ilja

              1. danke an alle,
                war ein anderer Fehler, nicht die Query.....
                und MAX funktioniert wunderbar
                Barbara

                1. Hi,

                  war ein anderer Fehler, nicht die Query.....
                  und MAX funktioniert wunderbar

                  dann frage ich mich ernsthaft um was es ueberhaupt ging.   ;-)

                  Gruss,
                  Ludger

                  --
                  "Ein Datensatz ist eine zusammengehoerende Gruppe von Datenwerten."