Announcement

Collapse
No announcement yet.

Abfrage-Problem???

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Abfrage-Problem???

    Hallo,
    <br>
    ich möchte meine Datenbank bereinigen und stehe im Moment vor folgendem
    Problem:
    <br>
    Ich habe 3 Tabellen<pre>
    1. Tabelle - Kunden:<br>
    KundenID(integer),Firma1(varchar(50)),PLZ(varchar( 5)),Ort(
    varchar(25)),Strasse(varchar(25)),Bundesland(varch ar(25))<br>
    2, Tabelle - PLZ:<br>
    PID(integer),PLZ(varchar(10)),Ort(varchar(50)),Bun deslandID(integer)<br>
    3. Tabelle - Bundesland:<br>
    BundeslandID(integer),Bundesland(varchar(20))</pre>
    <br><br>
    Es sollen nun in der Tabelle 1 die Bundesländer als Text eingetragen werden,
    jedoch habe ich nur eine Zuordnung der Postleitzahlen zu Bundesländern in
    Tabelle 2, die wiederum hat jedoch die Postleitzahlen mehrfach, da es für
    die gleiche PLZ mehrere Ortsnamen gibt.
    <br>
    Wie kann ich jedoch die Bundesländer aus Tabelle 3 in Tabelle 1 bringen mit
    der Bedingung, das die erste gefundene PLZ mit der Bundeslandzuordnung
    ausreicht aus Tabelle 2?
    <br>
    Ich habe jetzt folgendes gemacht:<br><pre>
    SELECT kunde.KundenID,kunde.Firma1, kunde.PLZ, kunde.ORT, kunde.Strasse,
    bundesland.Bundesland FROM Kunde
    INNER JOIN PLZ on Kunde.PLZ = PLZ.PLZ INNER JOIN Bundesland ON
    Bundesland.BundeslandID = PLZ.BundeslandID</pre>
    <br>
    Bei den Kundendatensätzen habe 1643, jedoch bekomme ich nach der Abfrage
    4226 Datensätze als Ergebnis.
    <br>
    Dieses könnte daran liegen, das Postleitzahlen in der Postleitzahlentabelle
    mehrfach vorkommen mit mehreren Ortsnamen.
    <br>
    Mir reicht es jedoch aus, das die erste gefundene PLZ in PLZ-Tabelle
    ausreichend ist für die Zuordnung des Bundeslandes.
    <br>
    Brian

  • #2
    Hallo Brian,

    so sollte es funktionieren:
    <pre>
    SELECT kunde.KundenID,kunde.Firma1, kunde.PLZ, kunde.ORT, kunde.Strasse,
    max(bundesland.Bundesland) FROM Kunde
    INNER JOIN PLZ on Kunde.PLZ = PLZ.PLZ INNER JOIN Bundesland ON
    Bundesland.BundeslandID = PLZ.BundeslandID
    group by kunde.KundenID, kunde.Firma1, kunde.PLZ, kunde.ORT, kunde.Strasse
    </pre>

    Dieser Weg funktioniert solange eindeutig wie es keine Postleitzahl gibt zu zu mehr als einem Bundesland gehört.

    Tschau

    Torste

    Comment


    • #3
      Danke. Hat prima geklappt.

      Bria

      Comment

      Working...
      X