Alternative zu Count(Distinct xyz)?

c-f-g

Grünschnabel
Ich bin auf der Suche nach einem Ausdruck, der sowohl unter SQL, als auch Access läuft, da letzteres ja so toll sämtliche Standards ignoriert, dass Count(Distinct xyz) nicht richtig ausgewertet wird.

Code:
SELECT COUNT(DISTINCT xyz) FROM abc
kann man ja noch relativ leicht durch
Code:
SELECT COUNT(*) FROM abc WHERE primkey in (SELECT MAX(primkey) FROM abc GROUP BY xyz)
ersetzen.

Allerdings hänge ich jetzt an der Stelle, wo ich diesen Subselect in meinen übergeordneten Select einbaue, denn an der Stelle brauche ich für das gejointe Konstrukt anhand einer festen ID den Count und ich weiß nicht, wie ich die ID in den Subselect reinbekommen sollte, da der Subselect ja vor dem eigentlichen Select ausgeführt wird...

Code:
SELECT abc.ID,
(SELECT COUNT(abc.ID) FROM abc WHERE abc.Nummer IN (SELECT MAX(abc.Nummer) FROM abc GROUP BY abc.Wert))
FROM ghi
INNER JOIN abc ON abc.Nummer = ghi.Nummer
LEFT JOIN def ON def.ID = abc.ID
WHERE abc.Filter = 1
GROUP BY abc.ID,
def.Text

In dem Subselect (SELECT COUNT...) bräuchte ich jetzt eine Where-Klausel wo ich die übergeordnete abc.ID reinstopfe - ist das irgendwie möglich oder wie komme ich sonst zu meinem Ergebnis (COUNT(DISTINCT abc.Nummer) nur eben über ein anderes Konstrukt)?
 
Zurück