Marko: Mal wieder ein SQL Problemchen

Hallo allerseits,

kämpfe mal wieder mit MYSQL, die Tabelle StatisticHistory hat unter anderem die Spalten Month (Integer) und Year (Integer), ich möchte jetzt den letzten eingetragenen Monat wissen, also den höchsten Wert für Monat im Datensatz mit dem Höchsten Jahr, der Versuch:

SELECT MAX(Month)  FROM StatisticHistory WHERE Year='SELECT  MAX(Year) FROM   StatisticHistory'

gibt leider immer einen SQL Fehler. kann mir da jemand mal kurz auf die Sprünge helfen.

Danke und Gruss

Marko

  1. Hallo Marko,

    SELECT MAX(Month)  FROM StatisticHistory WHERE Year='SELECT  MAX(Year) FROM   StatisticHistory'

    gibt leider immer einen SQL Fehler. kann mir da jemand mal kurz auf die Sprünge helfen.

    Du brauchst hierfür Subselects. Also

    SELECT MAX(Month) FROM StatisticHistory WHERE YEAR IN (SELECT MAX(YEAR) FROM StatisticHistory)

    Wenn du MySQL verwendest, welches keine Subselects kann, dann kannst Du auch alternativ folgendes nehmen:

    SELECT Year, Month FROM StatisticHistory ORDER BY Year, Month LIMIT 1

    Grüße,

    Christian

    --
    Sollen sich alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen und nicht mehr davon erfasst haben als eine Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst.
                          -- Albert Einstein
    1. Danke Christian,

      die letzte Idee mit dem Order und Limit war gut, musste nur noch ein 'DESC' einflicken, dann stimmts.

      Gruss

      Marko