Axel Richter: Unknown column 'maxdatum' in 'where clause'

Beitrag lesen

Hallo,

ich versuche folgende Query, um mir die Projektnummern
anzeigen zu lassen, die in einem Intervall, von heute zurückgerechnet, verwendet wurden:

SELECT pid, pname, name, pnr, max( datum )  AS 'maxdatum'

Wofür sind die Anführungsstriche da?

FROM stunden, projektnr, kunden
WHERE pid = projektnr.id AND
      kid = kunden.id AND

Das ist ein Join.

close = 0 AND

Das ist eine Bedingung, welche die gejointe Datensatzgruppe einschränkt.

'maxdatum' > ( date_sub( current_date,  INTERVAL 1  DAY  )  )

Das ist eine Bedingung, welche die gruppierte Datensatzgruppe einschrnke soll. Das geht hier noch nicht.

GROUP  BY pid

Hier wird nämlich erst gruppiert.

ORDER  BY maxdatum

SELECT pid, pname, name, pnr, max(datum) AS maxdatum
FROM stunden, projektnr, kunden
WHERE pid = projektnr.id AND
      kid = kunden.id AND
      close = 0
GROUP BY pid
HAVING maxdatum > (date_sub(current_date, INTERVAL 1 DAY))
ORDER BY maxdatum

Davon abgesehen, würde ich die Joins auch als INNER JOIN schreiben. Um das zu zeigen, fehlen mir aber Informationen zur Tabellenstruktr.

viele Grüße

Axel