🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Tabellenbeziehungen und Abfragen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
ma_da
Beiträge: 3
Registriert: Mi 25. Sep 2013, 15:35

Tabellenbeziehungen und Abfragen

Beitrag von ma_da » Mi 25. Sep 2013, 15:52

Hallo zusammen,

ich habe mich jetzt dumm und dämlich gesucht. Im großen Internet und auch hier im Forum. Ich sehe aber wohl den Wald vor Bäumen nicht.

Kommen wir zu meinem Problem:
Ich benötige eine Tabelle mit mehreren Datensätzen und ~300 Attributen (Spalten). Da es in Calc etwas unübersichtlich werden dürfe, wollte ich das über eine Datenbank regeln und mir dann das Ergebnis als Abfrage auswerfen lassen.

Ich erhalte täglich eine Tabelle mit ~5000 Datensätzen und 4 Attributen. Zu jedem Datensatz müssen unterschiedliche Attribute hinzugefügt werden. Bei einigen müssen es auch alle 300 sein.

Jetzt habe ich mir das so gedacht, da nicht alle Attribute gleich oft gebraucht werden, dass ich mir das in 10 unterschiedliche Tabellen unterteile und über die Abfrage später zusammengefügt werden können. So wäre es dann auch bei den Formularen übersichtlicher.

Ich komme aber nicht mit den Beziehungen und den Formularen klar. Auf jedes einzelne Formular sollen die 4 Attribute der täglichen Tabellen mit angezeigt werden, damit ich weiß welchen Datensatz ich gerade bearbeite.

Ich habe es jetzt mehrmals versucht, teilweise tauchen dann in der Abfrage datensätze doppelt auf.

Da ich ja tägliche Tabellen erhalte (einige Datensätze wegfallen, andere dazu kommen, bei einigen sich was geändert hat) gibt es eine Möglichkeit diese Tabelle dann täglich zu importieren und die alten Werte damit zu überschreiben ohne die anderen Datensätze zu verlieren?

Ich hoffe es war einigermaßen verständlich was ich ausdrücken wollte und jemand kann mir dabei helfen.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Tabellenbeziehungen und Abfragen

Beitrag von RobertG » Mi 25. Sep 2013, 19:41

Hallo ma-da,

erste Tabelle sollte die mit den vier Attributen sein. Das ist ja die, die Du rein bekommst. Irgendwie werden in dieser Tabelle ja auch unveränderliche Kennzeichen für einen Datensatz sein - das ist dann Dein Primärschlüssel.
Die zweite Tabelle enthält am besten alle weiteren Attribute. Das bedeutet, dass in der Tabelle ein anderer (automatischer) Primärschlüssel steckt und der Primärschlüssel der ersten Tabelle als Fremdschlüssel. Daneben würde ich dann so viele Attribute als Felder aufführen, wie in ein Tabellenkontrollfeld im Formular locker nebeneinander passen. Angenommen, das reicht von A1 bis A30, dann kannst Du in einem Datensatz 30 Attribute unterbringen. Sind es mehr Attribute, so kommt einfach die nächste Zeile (nächster Datensatz) mit wieder 30 Attributen hinzu. Hieße also bei 300 Attributen maximal 10 Datensätze in dem Tabellenkontrollfeld.
Diese zweite Tabelle wird im Unterformular dargestellt, so dass Du immer die vorgegebenen 4 Attribute der Haupttabelle im Hauptformular vor Augen hast und im Unterformular beliebig viele weitere Attribute eintragen kannst.
Ich nehme nicht an, dass Du in einer Abfrage diese Attribute nebeneinander sehen möchtest - 300 Stück wären da doch eine unüberschaubar lange Reihe. Ansonsten musst Du die Daten entsprechend gruppieren. Das geht leider mit der internen HSQLDB nur bedingt. Siehe dazu auch das aktuelle Handbuch zu Base, S. 272/273 - Gruppieren und Zusammenfassen. Eine weitere Möglichkeit wäre, auf eine externe Datenbank zu setzen oder ein bisschen zu warten bis die 4.2 von LO raus kommt - da ist als zusätzliche interne Datenbank "Firebird" drin, die den Befehl "List(...)" kennt, mit dem mehrere Datensätze einer Tabelle zu einem Feld verbunden werden.
Ich würde die Übersicht mir direkt in einer Gruppierung durch den Reportbuilder anzeigen lassen.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

ma_da
Beiträge: 3
Registriert: Mi 25. Sep 2013, 15:35

Re: Tabellenbeziehungen und Abfragen

Beitrag von ma_da » Do 26. Sep 2013, 16:33

Hallo Robert,

vielen Dank für deine Hilfestellung. Nur verstehe ich nicht ganz was du mir damit sagen wolltest. Ich brauche zum Abschluss alle Daten nebeneinander. Das wollte ich dann über eine Abfrage machen, um dann mittels copy&paste die Daten wieder in eine calc Tabelle einfügen zu können.

Ich habe meine gelieferter Tabelle als erst Tabelle genommen und die erste Spalte aus dieser als Primärschlüssel (Artikelnummer).
In die zwiete Tabelle habe ich alle 300 Attribute gepackt und einen Automatischen Primärschlüssel vergeben und einem Feld Artikelnr_ID mit dem der Primärschlüssel aus Tabelle (Artikelnummer) verknüpft ist.

Dann habe ich mir 10 Formulare erstellt mit jeweils der Artikelnummer aus Tabelle1 (damit ich weiß wo ich mich gerade befinde) und einem Unterformular mit jeweils 30 Attributen. Wenn ich jetzt in dem ersten Formular die zusätzlichen Attribute eingebe und zur nächsten Artikelnummer gehe um weiter Atrribute eingeben zu können, klappt das auf dem ersten Blick wunderbar.
Wenn ich dann aber eine Abfrage mache und mir alle Daten anzeigen lassen will, bekommt JEDE Artikelnummer die einzelnen Attribute angezeigt.

Beispiel:
Artikelnummer 1: Formular 1: Attribut 1, 2, 3, 4
Formular 2: Attribut 5, 6, 7, 8
Artikelnummer 2: Formular 1: Attribut 1, 2, 3, 4
Formular 2: Attribut 5, 6, 7, 8

Abfrage:
Artikelnummer1 : Attribut 1, 2, 3, 4, 5, 6, 7, 8
Attribut 1, 2, 3, 4, 5, 6, 7, 8 (der anderen Artikelnummern usw.)
Artikelnummer 2: Attribut 1, 2, 3, 4, 5, 6, 7, 8
Attribut 1, 2, 3, 4, 5, 6, 7, 8 (der anderen Artikelnummern usw.)

Dabei sollte dann unter Artikelnummer 1 auch nur das stehen was ich für Artikelnummer eins eingegeben habe.

Hoffe das war verständlich und ich kann das irgendwie übersichtlich gestalten, da einige Felder als Listenfelder, mehrzeilig, einzeilig, Datumsformat im Formular angezeigt werden sollen.

€: Ich habe jetzt mal Testweise die Daten aus der Liste (die ich jeden Tag erhalte) in die Attributliste eingefügt und die ersten 10 Datensätze in Base als eine Tabelle eingefügt. Das würde eigentlich klappen, auch mit den unterschiedlichen Formularen und mit der Abfrage (was ja eigentlich nur die Tabelle dann ist). Nur wenn ich alle Datensätze in Base einfügen möchte, kommt immer eine Fehlermeldung "Es konnte kein Tabellenformat gefunden werden".
Ausserdem ist es ja auch nicht Sinn der Sach so eine große Tabelle zu haben. Wenn ich das noch alles richtig zusammen bekommen, soll doch in einer Datenbank durch Beziehungen und Verküpfungen mehrere Attribute zum einem Datensatz zusammengefasst werden können.

Ich hoffe, dass es trotzdem eine Lösung gibt

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Tabellenbeziehungen und Abfragen

Beitrag von RobertG » Do 26. Sep 2013, 18:40

Hallo ma_da,

wenn Du mit den Eingaben so auch klar kommst ist das ja dann kein weiteres Problem. Ich bin bei der Schilderung davon ausgegangen, dass Dir dabei auch der Überblick verloren gegangen ist.

Jetzt wäre es wichtig zu sehen, wie denn Deine Abfrage lautet.
Eigentlich müsste etwas in dem Stil

Code: Alles auswählen

SELECT "Tabelle1".*, "Tabelle2".* FROM "Tabelle1", "Tabelle2" WHERE "Tabelle1"."ID" = "Tabelle2"."Artikel_ID"
direkt zum Ziel führen.
Nach dem, was Du als momentane Ausgabe angibst, dürftest Du die Verbindung der Tabellen bisher in der Abfrage nicht gemacht haben. Das geht sowohl in der grafischen Benutzeroberfläche als auch direkt im SQL-Modus.
Wenn Du über Extras → Beziehungen die Tabellen entsprechend verbunden hast, dann müsste das auch automatisch bei den Tabellen in der Abfrage erscheinen.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

ma_da
Beiträge: 3
Registriert: Mi 25. Sep 2013, 15:35

Re: Tabellenbeziehungen und Abfragen

Beitrag von ma_da » Fr 27. Sep 2013, 12:38

Hallo Robert,

ich dreh hier bald durch. Eventuel liegt es auch einfach nur an mir. Eigentlich bin mir dessen eigentlich sicher. Ich habe jetzt alles versucht, so wie du es vorgeschlagen hattest. Ergebnis ist aber immer das gleich, d.h. die Abfrage bringt mich absolut nicht weiter.

Daher habe ich noch mal alles neu geordnet und aufgeschrieben. Evtl. kannst du damit was anfangen und mir Hilfe geben:

Eine Datenbank wird benötigt um nachher eine Liste zu erhalten die ca. 10000 Datensätze hat mit jeweils 300 Feldern/Attributen
Attribut 1-4 bekomme ich täglich aus einer anderen Datenbank im .csv Format. Es muss eine Möglichkeit geben diese Liste jeden Tag in die Datenbank einzulesen. Es ändern sich immer die Attribute 3 und 4. Auch fallen Datensätze weg bzw. kommen dazu.
Attribut 1 ist immer eindeutig und gibt es nicht zweimal, wäre also mein Primärschlüssel.
Attribut 1-4 würde ich gerne automatisch in der Tabelle 2 und 3 übernehmen.

Tabellen :

Tabelle 1 (Attribut 1, Attribut 2, Attribut 3, Attribut 4) Gibt es jeden Tag neu
Tabelle 2 (Attribut 1, Attribut 2, 5-20)
Tabelle 3 (Attribut 3, 4, 21-42)
.
.
.
Tabelle 12 (Attribut 270-300)

Ich kann aber auch die Tabellen 2-12 zu einer großen zusammenfassen. Keine Ahnung was mehr Sinn macht. Formulare sollten aber einzelne sein, da die Attribute in Kategorien unterteilt sind und jede Kategorie ein Formular haben soll (übersichtlicher), außerdem werden die Attribute 125-300 nur äußerst selten benötigt.

Formulare:

Formular 1 (Daten zu Tabelle 2)
Formular 2 (Daten zu Tabelle 3)
.
.
.
Formular 11 (Daten zu Tabelle 12)

In jedem Formular sollen mir auch die Daten aus Tabelle 1 angezeigt werden, damit ich weiß bei welchem Datensatz ich mich befinde.
Die einzelnen Kontrollfelder sind unterschiedliche angelegt. Geht von Textfeld über Listenfeld zu Markierungsfeld.

Abfragen:

Abfrage 1 (Zusammenfassung aus Formular 1-11, es darf aber zu jedem Attribut 1 nur einen Datensatz geben)
Beispiel:
In Formular 1 gebe ich die Daten zum ersten Datensatz (Attribut 1 eindeutig) ein. In Formular 10 gebe ich die Daten für Attribut 250 des ersten Datensatzes ein. Andere Attribute werden für diesen Datensatz nicht benötigt. Bei meiner jetzigen Abfrage gibt es dann für Attribut 1 zwei Zeilen. Erste Zeile die Daten aus Formular 1 und in der zweiten Zeile die Daten aus Formular 10.
Die Daten sollen aber nur in einer Zeiler erscheinen. Mit anderen Worten des Ausgangspunkt ist immer das Attribut 1. 1,2,3,4 sind vorgegebne und alle anderen Attribute sollen über die Formulare hinzugefügt werden.

Ist das wie ich es vorhabe möglich umzusetzen? Wenn ja, wie muss ich die Beziehungen ziehen. Wie muss ich Primär- und Fremdschlüssel verteilen.

€: Was mir gerade noch in den Sinn kommt, gäbe es eine Möglichkeit nur ein Formular zu haben das aus mehreren Unterformularen (anwählbar mittels Reiter) besteht? Dann müsste ich das doch eigentlich umgehen können 12 unterschiedliche Formulare zu nutzen.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Tabellenbeziehungen und Abfragen

Beitrag von RobertG » Fr 27. Sep 2013, 16:48

Hallo ma_da,

ich habe das einmal in ein Beispiel gepackt, wie es zu Deiner bisherigen Konstruktion vielleicht passt. Der *.csv-Import ginge mit Hilfe der Beispieldatenbank aus dem Handbuch.
Ich weiß jetzt natürlich nicht, ob das das ist, was Du Dir vorstellst ...

Gruß

Robert
Dateianhänge
Attribute.odb.zip
(10.26 KiB) 178-mal heruntergeladen
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten