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
Anfänger: Kriterium bei der Abfrage über mehrere Tabellen
Moderator: Moderatoren
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
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:
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
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
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
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
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Hallo Alla,
Informationen über SQL sind auch über http://de.wikipedia.org/wiki/SQL erhältlich und über Datenbanken unter http://de.wikipedia.org/wiki/Datenbanken
Die Dokumentation durchzukauen ist mir zu aufwendig.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?
- - 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.
Ich ging lediglich von der beschriebenen Ausgangssituation aus.Die Primärschlüssel von der 1. und 2. Tabelle sind doch schon über ID verbunden, oder habe ich was falsch verstanden?
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
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
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
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