Hallo,
ich habe eine Kundenverwaltung für eine Tanzschule. (anbei ohne Kunden beigefügt)
Durch Hilfe und viele Stunden verstehen ist die Datenbank auch schon auf gutem Wege.
Nun mein Problem:
Bisher wenn ich Kurslisten ausdrucke, sotiert er die Kunden nach ID auf dem Bericht, wer aber miteinander tanzt steht in den meisten fällen jedoch nicht untereinander.
Wie stelle ich das am besten an?
Wie kann ich dafür sorgen, dass nicht jeder Kunde doppelt im bericht auftaucht?
Berichte mit Unter-Berichte hab ich bisher noch nie verwendet.
Eine Partnerzuordnung existiert bereits und diese Funktioniert auch.
[Anhang gelöscht durch Administrator]
Hallo,
du solltest deine Tabellenbeziehungen auf 1:n umstellen - undefinierte Beziehungen sind nicht gut!
Weiter fehlt in der DB die Beziehung zwischen tblKunden und tblPartnerzuordnung - natürlich hierbei auch das Tabellenalias nicht vergessen.
Also KundenID aus tblKunde mit Kunde0ID und KundenID aus Tabellenalias tblKunde_1 mit Kunde1ID in der tblPartnerzuordnung 1:n in beziehung setzen. (Häkchen bei referentieller Integrität setzen)
Für den Bericht müsste eine Abfrage in der Form:
SELECT tblKunde.Nachname, tblKunde_1.Nachname, tblPartnerzuordnung.Kurs_ID
FROM tblKunde AS tblKunde_1
INNER JOIN (tblKunde INNER JOIN tblPartnerzuordnung ON tblKunde.KundeID = tblPartnerzuordnung.Kunde0_ID)
ON tblKunde_1.KundeID = tblPartnerzuordnung.Kunde1_ID;
die benötigten Daten liefern können.
HTH
Zitat von: database am Mai 24, 2012, 13:07:21
Hallo,
du solltest deine Tabellenbeziehungen auf 1:n umstellen - undefinierte Beziehungen sind nicht gut!
Weiter fehlt in der DB die Beziehung zwischen tblKunden und tblPartnerzuordnung - natürlich hierbei auch das Tabellenalias nicht vergessen.
Also KundenID aus tblKunde mit Kunde0ID und KundenID aus Tabellenalias tblKunde_1 mit Kunde1ID in der tblPartnerzuordnung 1:n in beziehung setzen. (Häkchen bei referentieller Integrität setzen)
Für den Bericht müsste eine Abfrage in der Form:
SELECT tblKunde.Nachname, tblKunde_1.Nachname, tblPartnerzuordnung.Kurs_ID
FROM tblKunde AS tblKunde_1
INNER JOIN (tblKunde INNER JOIN tblPartnerzuordnung ON tblKunde.KundeID = tblPartnerzuordnung.Kunde0_ID)
ON tblKunde_1.KundeID = tblPartnerzuordnung.Kunde1_ID;
die benötigten Daten liefern können.
HTH
In der Tabelle TblPartnerzuordnung gibt es Daten, die gegen die Regeln für referenzielle Integrität verstößen.................................
Hallo,
Zitatdie gegen die Regeln für referenzielle Integrität verstößenquote
Dann ändere das Du hast in Du hast Zuordnungen getroffen mit Partnern die es nicht gibt.
Du kannst grundsätzlich davon ausgehen, dass Fehler im Tabellenaufbau oder Fehler in der Datenkonsistenz vorliegen wenn sich keine referentielle Integrität setzen lässt. Das solltes Du immer beseitigen/berichtigen. Und bevor das nicht berichtigt ist, gar nicht erst weitermachen.
PS:
Es ist überflüssig und verwirrt mehr als es nutzt komplette Beiträge zu zitieren.