Kristin: Doppelzählungen verhindern

Beitrag lesen

Hi

hier ein Kurzschema

zahlen            plzgkz        landkreise
----+--------     ----+----     ----+------
plz | zahlen      plz | gkz     gkz | name

zahlen: plz = 5 Stellig
plzgkz: plz = 5 stellig, gkz 8 stellig
landkreise: gkz = 5 stellig (erste 5 Stellen der gkz)

um die Zahlen für jede plz aufzulisten müßte der SQl Befehl ungefähr so aussehen

SELECT
    z.plz
    SUM(COALESCE(z.zahlen, 0)) AS zahlen,
FROM zahlen z
INNER JOIN plzgkz p ON z.plz = p.plz AND substr(p.gkz, 1, 5) = '09776'
GROUP BY
    z.plz
ORDER BY
    z.plz

in der Tabelle zahlen gibt es nur einen Eintrag mit der plz 17039 und den Wert 100000, in der Tabelle plzgkz gibt es zu der plz 17039 13 unterschiedliche gkz.

plz  | zahlen | gkz      | gkz (erste 5 Stellen)
-------+--------+----------+-------
 17039 | 100000 | 13055079 | 13055
 17039 | 100000 | 13055002 | 13055
 17039 | 100000 | 13055049 | 13055
 17039 | 100000 | 13055081 | 13055
 17039 | 100000 | 13055051 | 13055
 17039 | 100000 | 13055003 | 13055
 17039 | 100000 | 13055065 | 13055
 17039 | 100000 | 13055066 | 13055
 17039 | 100000 | 13055008 | 13055
 17039 | 100000 | 13055069 | 13055
 17039 | 100000 | 13055072 | 13055
 17039 | 100000 | 13055046 | 13055
 17039 | 100000 | 13055076 | 13055

für die plz will ich jetzt die Zahl 100000 haben, ich erhalte jedoch 1300000

Ich muss also irgendwie verhindern, dass er jede gkz Spalte verwendet, wo die 5 ersten Zeichen 13055 sind

Kristin