Moin,
Folgendes Szenario:
Es gibt drei Tabellen ( kunden, vertrag, rechnung ), wobei der PrimaryKey bei der Kunden-Tabelle die "kunden_nr" ist, bei der Vertrag-Tabelle die "vertrag_nr" und bei der Rechnung-Tabelle die "rechnungs_nr".
Die Rechnung-Tabelle hat sowohl einen Eintrag für die zugehörige kunden_nr als auch die vertrags_nr. Die Vertrag-Tabelle hat nur einen Eintrag für die zugehörige kunden_nr, und die Kunden-Tabelle besitzt keine Einträge auf externe PrimaryKeys.
Ich hab mir jetzt in einer ersten Abfrage die Rechnung mit dem neuesten Eintragungsdatum je Vertragsnummer geholt, d.h. folgende Abfrage:
CREATE TEMPORARY TABLE
tmp
SELECT
kunden_nr, vertrags_nr, MAX( eintragung ) as last
FROM
rechnung
GROUP BY vertrags_nr;
Hier kommt das gewünschte Ergebnis raus.
Nun möchte ich in einer zweiten Abfrage die Datensätze in der Temporären Tabelle mit den zugehörigen Werten aus den drei Tabellen kunden, vertrag und rechnung auffüllen.
Ich bin dazu zur Zeit bei folgender Abfrage, die mir aber aber aus 3 usprünglichen Datensätzen in der Temporären Tabelle 5 Datensätze macht:
SELECT
s.firma, s.vorname, s.name, s.strasse, s.nr, s.plz, s.ort, s.email,
v.preis, v.domain, v.leistung, v.intervall, v.zahlungsart, v.bank,
r.kunden_nr, r.vertrags_nr, r.rechnungs_nr, r.abrechnung
FROM
tmp, vertrag as v, rechnung as r, stamm as s
WHERE
tmp.vertrags_nr = v.vertrags_nr
AND
tmp.kunden_nr = s.kunden_nr
AND
tmp.last = r.abrechnung;
Bin für jede Hilfe dankbar. Gruß, *jiriki*