Hallo ich hab noch ein Problem und keiner meiner Kollegen konnte helfen.
Vereinfacht dargestellt verhält es sich wie folgt:
Ich habe drei Tabellen
- t_customers
- customer_no (key)
- customer_name
- t_customer_accounts
- customer_no (key)
- depot_no (key)
- t_constellation
- customer_no (key)
- depot_no (key)
- constellation_ID
- cash_account_no
In diesen Tabellen kann es nur einen Kunden mit einer customer_no geben. Ein Kunde kann mehrere depot_no und mehrere constellation_id’s haben.
Mein Problem ist nun, dass ich einen Kunden habe, der mehrere depot_no hat, aber nicht alle depot_no haben eine constellation_no.
Dieses Ergebnis würde ich erwarten
customer_no | depot_no | constellation_id | cash_account_no
… | | |
1010 | 11111 | 15 | 111
1010 | 12345 | 30 | 123
BTFS |555555 | 70 | 555
BTFS 666666
…
Stattdessen wird für den kd2 die gleiche constellation_id für das zweite Depot angezeigt, obwohl für das zweite Depot gar keine constellation_id da ist.
Das Ergebnis bekomme ich, ist aber natürlich falsch:
customer_no | depot_no | constellation_id | cash_account_no
… | | |
1010 | 11111 | 15 | 111
1010 | 12345 | 30 | 123
BTFS | 555555 | 70 | 555
BTFS |666666 | 70 | 555
…
Hier ein paar Beispieldaten:
t_customers:
customer_no | name_1
1010 | DIRAAT
1020 | Meiner
BFTS | Irgendwas
t_customer_accounts:
customer_no | depot_no
1010 | 11111
1010 | 12345
1020 | 444444
BFTS | 555555
BFTS 666666
t_constellation:
customer_no | depot_no | constellation_id | cash_account_no
1010 | 11111 | 15 | 111
1010 | 12345 | 30 | 123
1020 | 444444 | 20 | 4444
BFTS | 555555 | 70 | 555
Hier mein SQL:
select
ca.customer_no as “Customer No”,
ca.depot_no as “Depot No”,
con.constellation_id as “Konstellation”,
con.cash_account_no as “Geldkonto”
from customer_accounts ca,
accounts a,
customers c,
constellation con
where
a.account_no = ca.depot_no
and c.customer_no = ca.customer_no
and con.customer_no = c.customer_no
Wenn ich dann noch die Zeile
and con.account_no = a.account_no
einfüge, dann zeigt er mir das zweite BTFS-Depot nicht mehr an.