Ilja: Doppelzählungen verhindern

Beitrag lesen

yo,

ok, denke jetzt habe ich es besser verstanden, aber das design ist grausam, auch wenn es historisch bedingt ist. man sollte sich überlegen, ob man nicht die zeit und mühe in ein design investiert, also sich mit den reports hinten herum zu schlagen.

wie auch immer, die basis deiner abfrage ist die tabelle landkreise, damit bekommst du schon mal die richtige anzahl von datensätze. dort baust du eine "quasi korrelierte unterabfrage" ein. quasi deswegen, weil ihr nicht wirklich richtige fremdschlüssel habt, weswegen du auch öfters mehrere treffer bekommst. da es sich um eine unterabfrage handelt, wir also nur einen wert zurück haben dürfen/wollen, nehmen wir halt einen der sowieso immer gleichen werte mit dem trick von MIN oder MAX.

SELECT l.kgz, l.name, (SELECT MIN(z.zahlen)
                       FROM plzgkz p
                       INNER JOIN zahlen z ON z.plz = substr(p.gkz, 1, 5)
                       WHERE p.gkz = l.gkz
                      )
FROM landkreis l
;

Ilja