Zvoni
Erfahrenes Mitglied
Guten Morgen.
Hintergrund:
Ich soll einen Business-Report generieren, welcher
1) Ein Brett an Daten (mehrere 1000 Zeilen) aus einer Detail-Tabelle holt ("Verkäufe")
2) zur besseren Darstellung soll ich den Kundennamen mitliefern, welcher aus einer Master-Table kommt ("Kunden")
3) Die Verknüpfung zwischen beiden Tabellen sind jedoch zwei Spalten: Kundennr. und Abladestelle
Aus dem Ärmel weiss ich jetzt zwei Methoden:
Ich habe jetzt mal im Beispiel nur zwei KundenNummern, aber es handelt sich derzeit bereits um min. 40 Kundennummern, welche in Zukunft sogar mehr werden.
Das ganze wird aus VBA (Excel) aus aufgerufen, also wird das SQL-Statement mehr oder weniger dynamisch im Code zusammengebaut (Bitte nicht mit Parameter etc. anfangen. Hab nicht viel Zeit dafür)
Hat jemand Erfahrungswerte was performanter ist?
Meinungen?
EDIT: Datenbank ist eine IBM DB2 auf einer iSeries
Hintergrund:
Ich soll einen Business-Report generieren, welcher
1) Ein Brett an Daten (mehrere 1000 Zeilen) aus einer Detail-Tabelle holt ("Verkäufe")
2) zur besseren Darstellung soll ich den Kundennamen mitliefern, welcher aus einer Master-Table kommt ("Kunden")
3) Die Verknüpfung zwischen beiden Tabellen sind jedoch zwei Spalten: Kundennr. und Abladestelle
Aus dem Ärmel weiss ich jetzt zwei Methoden:
SQL:
SELECT DISTINCT T1.IrgendwelcheFelder As Felder, T2.EinKundenName As Kunde
FROM Verkauf As T1
INNER JOIN Kunden As T2
ON
T1.KDNR=T2.KDNR AND
T1.VENR=T2.VENR
WHERE T1.KDNR=ErsteKundenNummer AND T1.VENR=1
UNION
SELECT DISTINCT T1.IrgendwelcheFelder As Felder, T2.EinKundenName As Kunde
FROM Verkauf As T1
INNER JOIN Kunden As T2
ON
T1.KDNR=T2.KDNR AND
T1.VENR=T2.VENR
WHERE T1.KDNR=ZweiteKundenNummer AND T1.VENR=6
usw.
SQL:
SELECT DISTINCT T1.IrgendwelcheFelder As Felder, T2.EinKundenName As Kunde
FROM Verkauf As T1
INNER JOIN Kunden As T2
ON
T1.KDNR=T2.KDNR AND
T1.VENR=T2.VENR
WHERE (T1.KDNR, T1.VENR) IN (VALUES (ErsteKundenNummer, 1),(ZweiteKundenNummer, 3))
Das ganze wird aus VBA (Excel) aus aufgerufen, also wird das SQL-Statement mehr oder weniger dynamisch im Code zusammengebaut (Bitte nicht mit Parameter etc. anfangen. Hab nicht viel Zeit dafür)
Hat jemand Erfahrungswerte was performanter ist?
Meinungen?
EDIT: Datenbank ist eine IBM DB2 auf einer iSeries