Entwickler-Ecke

Datenbanken - Zusammenführen von Daten aus Tabellen + Anzeige Bericht


TimHa - Sa 18.03.06 22:19
Titel: Zusammenführen von Daten aus Tabellen + Anzeige Bericht
Hallo zusammen!

Ich möchte eine Suche programmieren. Der Anwender tippt eine Rechnungsnr in ein Edit Feld ein und soll nach Klick auf einen Button die Rechnung als Bericht ausgegeben bekommen.

Meiner Meinung nach brauche ich dazu ein Query, welches Informationen aus drei Tabellen (Kunde, Rechnung, Rechnungsposition) zusammenführt. Später greift der Bericht dann auf das Query zu und zeigt die gewählten Daten an.

Wie muss denn der SQL Code aussehen? Ich hab mir so was gedacht:

SQL-Anweisung
1:
2:
3:
4:
5:
SELECT *
FROM Kunde, Rechnung, Rechnungsposition
WHERE Rechnung.Rechnungsnr = :eingabeRechnungsnr
AND Rechnungsposition.Rechnungsnr = :eingabeRechnungsnr
AND Kunde.Kundenr = Rechnung.Kundennr;


Kann das überhaupt so funktionieren? Ich bezweifel, dass das mit der Kundennr funktioniert...

Tim

Moderiert von user profile iconraziel: Code- durch SQL-Tags ersetzt


mkinzler - Sa 18.03.06 22:26

Hallo Tim,

du solltest bei einem Join nur die wirklich benötigten Felder in der Feldliste angeben.
Ob die Abfrage so funktioniert hängt vom Datenschema ab, grundsätzlich könnte es aber funktionieren.


TimHa - So 19.03.06 10:54

Hi Markus!

Ok, dann ersetze ich in Zeile 1 den Stern durch die einzelnen Felder. Kein Problem.

Zeile 3 und 4 machen bei mir auch zu 100% Sinn, da die eingegebene Rechnungsnr mit den Rechnungsnummern aus den Tabellen verglichen wird. Da werden dann hoffentlich die richtigen Datensätze rausgesucht.

Ich bin mir halt bei Zeile 5 so unsicher. Was ich möchte ist folgendes: Durch die Eingabe der Rechnungsnr kann ja nur ein Kunde in Frage kommen, da die Tabelle Rechnung das Feld Kundennr als Fremdschlüssel hat.
Sucht sich das Programm durch Zeile 5 automatisch den passenden Kunden raus?

Du hast geschrieben, dass die Funktion abhängig von meinem Datenschema ist. Wie muss es denn aussehen damit es funktioniert?
In der Tabelle Rechnung (Primärschlüssel Rechnungsnr) habe ich einen Fremdschlüssel (Kundennr) der auf die Tabelle Kunde verweist. In der Tabelle Rechnungsdaten bilden die Rechnungsnr und die Artikelnr den zusammengesetzten Schlüssel.
Brauchst du sonst noch Informationen?

Tim


mkinzler - So 19.03.06 11:09

[quote]Ich bin mir halt bei Zeile 5 so unsicher. Was ich möchte ist folgendes: Durch die Eingabe der Rechnungsnr kann ja nur ein Kunde in Frage kommen, da die Tabelle Rechnung das Feld Kundennr als Fremdschlüssel hat.
Sucht sich das Programm durch Zeile 5 automatisch den passenden Kunden raus? [quote] Ja.

Zitat:
In der Tabelle Rechnungsdaten bilden die Rechnungsnr und die Artikelnr den zusammengesetzten Schlüssel.
Ich würde der Tabellerechnungsposition (Rechnungsdaten?) auch einen künstlichen Primärschlüssel spendieren. Geht aber auch so.

Ich würde die Abfrage einfach so ausprobieren. Wenn was nicht funktioniert kannst du die ja mal Beschreibung der 3 Tabellen sowie ein parr Testdatensätze posten.

Markus.


TimHa - So 19.03.06 15:03

Ich werde mal was rumprobieren. :)

Tim