Hi,
ich sehe, was du meinst. Hatte die FROM table, table als OUTER Join gedeutet ... isses aber wohl nicht, zmd nicht unter T-SQL :)
Das SQL vom OP impliziert einen Inner Join, der für den Autor 1 schon gar keinen Datensatz bringt und dann noch gegen Werte aus dem "keinen" Datensatz gruppieren soll.
Formulierst du die Abfrage hingegen mit einem ordentlichen Join, welcher für die Anforderung des OP auch angemessen ist, nämlich LEFT OUTER JOIN, dann bekommt man das gewünschte ein Ergebnis solange die WHERE Klausel auch Daten zulässt die in der linkesten Tabelle sind.
Also quasi so:
SELECT count(*), MAX(t.date)
FROM autor a
LEFT OUTER JOIN text t ON a.ID = t.autor_ID
WHERE and a.ID='1'
GROUP BY a.ID -- ob das sinn macht wenn man sowieso nur einen Datensatz erwartet?
Gibt es in der rechteren Tabelle dann kein Match, bleibt MAX(t.date) bei NULL. Ist ja auch verständlich, MAX von 100x NULL ist immernoch NULL. Dies beantwortet sicherlich deine Frage.
Ciao, Grüsse vom Zürichsee
Frank