SQL Abfrage: Bitte um Hilfe

MHeuergmbh

Neuer Benutzer
Beiträge
2
Hallo, ich habe hier eine einfache Abfrage, welche mir über zwei Tabellen, eine Nummer (bszb und bskundennr) aus meiner Bestelltabelle(bestkk) und die kkkAT aus den Kundenstammdaten (kundenka) holen soll.

Funktioniert auch soweit, nur dass ich ca. 20.000 ergebnisse mit immer dem selben Eintrag bekomme, was mache ich falsch? Vielen Vielen Dank für die Hilfe!

Hier der Code:

SELECT BESTKK.bszb, BSKUNDENNR,KUNDENKA.KKKAT
FROM BESTKK, KUNDENKA
where BESTKK.bszb = 96 AND BSKUNDENNR = 2120618

1.PNG
 
Werbung:
Ein Cross-Join kombiniert jeden Datensatz mit jedem Datensatz, ohne irgendeine Gemeinsamkeit. Du suchst also eine Join-Bedingung (Gemeinsamtkeit) und solltest außerdem explizite Join-Syntax verwenden wie z.B. INNER JOIN oder LEFT JOIN.
 
ich habe von joins leider keine Ahnung, kann mir evtl. jemand den code so umbauen, dass es lauffähig ist? wo muss ich das left join hinschreiben?
 
Werbung:
@ akretschmer xD Danke für die Verlinkung. Die kannte ich auch noch nicht *mich weg werf*



@ Fragesteller:

Du möchtest doch deine Tabelle mit den Bestellungen um eine Information aus der Tabelle mit den Kundenstammdaten ergänzen. Richtig?

Also ist die maßgebende Tabelle schon mal die "Bestellungen".

Sprich jetzt kommt der Join über die eindeutige ID (kann z.B. die Kundennummer sein, die in beiden Tabellen identisch sein muss).

SELECT

....

FROM <Tabelle Bestellungen>
LEFT JOIN <Tabelle Kundenstamm> ON <tabelle Bestellung.eideutigeID> = <tabelle Kundenstamm.eindeutigeID>

WHERE ...



GGf. solltest du nur aufpassen, das bei Bestellungstabellen ggf. auch die Abwicklung/Fakturierung in neuen Datenzeilen erfolgen kann.
Sprich z.B. Stornos oder die Abwicklung/Begleichung selbst.
Nicht das du dadurch doppelte/dreifache/vierfach... Zeilen bekommst..
Aber das hängt vom Aufbau deiner Tabelle Bestellung ab.
 
Zuletzt bearbeitet:
Zurück
Oben