Anfänger: Kriterium bei der Abfrage über mehrere Tabellen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Alla
*
Beiträge: 11
Registriert: Do, 17.08.2006 10:40
Wohnort: Wetzlar

Anfänger: Kriterium bei der Abfrage über mehrere Tabellen

Beitrag von Alla »

Hallo an alle,

ich muss jetzt beruflich eine Datenbank erstellen und bin dabei mich einzuarbeiten. Da mache ich gerade ein paar Beispiele nach, die bei mir leider nicht funktionieren.
Folgende Ausgangssituation: 3 Tabellen.
Tabelle 1: ID (Primärschlüssel), Name, Adresse.
Tabelle 2: ID (PS), Name, Hochzeitsmonat
Tabelle 3: ID (PS), Monatsname (1-Jan, 2-Feb usw)

Im Beispiel sollen Name und Adresse von Personen angezeigt werden, die im Juli geheiratet haben. Die beiden ID's von den Tab. 1 und 2 wurden in der Abfrage verbunden und als Kriterium beim Hochzeitsmonat eine '7' eingetragen für Juli. Leider wurde in der Doku nicht beschrieben, wie man eine Verbindung von Tab 2 zu Tab 3 macht. Ich habe es rausgefunden, dass man im Formular eine Liste machen kann, die zur Tab 3.Monatsname verbunden ist. Dann kann man die Monate auswählen.

Nur leider funktioniert die Abfrage nur, wenn ich nach 'Jul' suche und nicht, wenn ich nach '7' suche. Ich habe schon ausprobiert, in der Abfrage die Tab 2 und 3 über Hochzeitsmonat<->Monatsname zu verbinden. Dann den Primärschlüssel von Tab 3 auf Monatsname zu legen - es funktioniert beides nicht.
Die Beispiele habe ich von hier:
http://documentation.openoffice.org/man ... thBase.pdf

Kann mir jemand helfen?

Gruss. Alla
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

Hallo Alla,

wenn Du davon ausgehst, dass eine Person des öfteren heiratet, ist es sicherlich sinnvoll, für den Heiratsmonat (ich würde das Hochzeitsdatum nehmen und den Monat bei der Auswertung extrahieren), eine 2. Tabelle anzulegen. Statt dem Namen in der 2. Tabelle müsste der Primärschlüssel (PS) der 1. Tabelle in der 2. Tabelle gespeichert werden. Gleiche Vor- und Nachnamen gibts immer wieder. Die 3. Tabelle ist überflüssig. Ein SQL-Code könnte dann wie folgt aussehen:

Code: Alles auswählen

SELECT * FROM "Tabelle2", "Tabelle1"
WHERE "Tabelle2.Monat" = :Monat
AND "Tabelle1.PS" = "Tabelle2.Personalnummer"
ORDER BY "Tabelle1.Name"
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Alla
*
Beiträge: 11
Registriert: Do, 17.08.2006 10:40
Wohnort: Wetzlar

Beitrag von Alla »

Hallo "pmoegenb",

vielen Dank für die Antwort. Ich wollte aber wissen, wie das mit dem Beispiel aus der offiziellen Doku funktionieren soll.

Wo kann ich denn SQL-Code im OpenOffice hinzufügen? Z.B. das, was du geschrieben hast?

Die Primärschlüssel von der 1. und 2. Tabelle sind doch schon über ID verbunden, oder habe ich was falsch verstanden?

Gruss. Alla
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Beitrag von pmoegenb »

Hallo Alla,
Ich wollte aber wissen, wie das mit dem Beispiel aus der offiziellen Doku funktionieren soll.
Die Dokumentation durchzukauen ist mir zu aufwendig.
Wo kann ich denn SQL-Code im OpenOffice hinzufügen? Z.B. das, was du geschrieben hast?
  • - Datenquelle mit der rechten Maustaste anklicken und Datenbankdatei bearbeiten auswählen.
    - In OpenOffice.org Base im linken Fenster mit dem Titel Datenbank die Option Abfragen markieren.
    - Im Fenster mit dem Titel Aufgaben die Option Abfrage in SQL-Ansicht erstellen... mit der linken Maustaste doppelt anklicken.
Die Primärschlüssel von der 1. und 2. Tabelle sind doch schon über ID verbunden, oder habe ich was falsch verstanden?
Ich ging lediglich von der beschriebenen Ausgangssituation aus.

Informationen über SQL sind auch über http://de.wikipedia.org/wiki/SQL erhältlich und über Datenbanken unter http://de.wikipedia.org/wiki/Datenbanken
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Alla
*
Beiträge: 11
Registriert: Do, 17.08.2006 10:40
Wohnort: Wetzlar

Beitrag von Alla »

Hallo,

vielen Dank für die schnelle Antwort.
Wie ich verstanden habe, kann man SQL-Code nur in den Abfragen und Ansichten hinzufügen? Und in den Formularen hinter den Feldern...

Wenn ich z.B. einen Datensatz kopieren will, muss ich eine Schaltfläche erstellen und mit SQL-Code verknüpfen. Was muss dann drin stehen für Daten kopieren? Geht das überhaupt?

Gruss. Alla
Antworten