BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Tabelle mit 8600 Datensätzen aufteilen
-
- ! Supporter - Spende !
- Beiträge: 66
- Registriert: So 1. Jan 2017, 11:34
Tabelle mit 8600 Datensätzen aufteilen
Hallo, ich habe hier eine aus einer .mdb-Datei extrahierte Calc-Tabelle mit den Platten meines Vaters und würde gern eine Datenbank mit Formularen und Berichten draus bauen. Es ist alles in einer Tabelle vereinigt: Komp_Vorn, Komp_Nachn, Geburtsort, Lebenslauf, Drirgent, etc. die kleinste Einheit ist das Stück auf dem Datenträger. Manuell müsste ich also nach den Komponisten sortieren und dann eine KompID- Spalte für die Komponisten einfügen und für jeden neuen Komponisten eine neue ID vergeben, die Tabellen dann in "Komponisten" und "Stücke" aufteilen und bei den Komponisten die Dubletten löschen.
Dann hätte ich schon einmal zwei Tabellen zum Verbinden.
Und diese Spiel noch mit den Datenträgertypen und anderen Eigenschaften wiederholen.
SQL kann diese Aufgabe sicher "unmanuell", oder kann vielleicht Calc die Nummern vergeben? Den Rest würde ich dann per Pivottabelle zu lösen versuchen.
Mein Leben hängt NICHT von der Lösung der Aufgabe ab, es ist eher sportlicher Ehrgeiz.
beste Grüße und Dank im Voraus
WonneWasti
Dann hätte ich schon einmal zwei Tabellen zum Verbinden.
Und diese Spiel noch mit den Datenträgertypen und anderen Eigenschaften wiederholen.
SQL kann diese Aufgabe sicher "unmanuell", oder kann vielleicht Calc die Nummern vergeben? Den Rest würde ich dann per Pivottabelle zu lösen versuchen.
Mein Leben hängt NICHT von der Lösung der Aufgabe ab, es ist eher sportlicher Ehrgeiz.
beste Grüße und Dank im Voraus
WonneWasti
Re: Tabelle mit 8600 Datensätzen aufteilen
Hallo WonneWasti,
hier nur, wie ich so etwas handhabe:
1. Alle Daten in eine Tabelle (z.B. "Import") einlesen.
2. Abfrage laufen lassen. Das schluckt alle Duplikate.
3. Abfrage nehmen und als neue Tabelle "Komponisten" einfügen. Vielleicht vorher bereits diese Tabelle mit einer "ID" als AutoWert erstellen.
4. "Import" eine Spalte "KomponistenID" hinzufügen - Integer wie die "ID" in "Komponisten"
5. Über Extras → SQL
Danach hast Du in der Tabelle "Import" den Verweis auf die Komponisten drin.
So kannst Du Stück für Stück die Ausgangstabelle "normalisieren", d.h. zu häufige Duplikate entfernen und durch ausgelagerte Tabellen ersetzen.
Gruß
Robert
hier nur, wie ich so etwas handhabe:
1. Alle Daten in eine Tabelle (z.B. "Import") einlesen.
2. Abfrage
Code: Alles auswählen
SELECT DISTINCT "Komponisten" FROM "Import"
3. Abfrage nehmen und als neue Tabelle "Komponisten" einfügen. Vielleicht vorher bereits diese Tabelle mit einer "ID" als AutoWert erstellen.
4. "Import" eine Spalte "KomponistenID" hinzufügen - Integer wie die "ID" in "Komponisten"
5. Über Extras → SQL
Code: Alles auswählen
UPDATE "Import" AS "a"
SET "a"."KomponistenID" = (SELECT "ID" FROM "Komponisten" WHERE "Komponisten" = "a"."Komponisten")
So kannst Du Stück für Stück die Ausgangstabelle "normalisieren", d.h. zu häufige Duplikate entfernen und durch ausgelagerte Tabellen ersetzen.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
-
- ! Supporter - Spende !
- Beiträge: 66
- Registriert: So 1. Jan 2017, 11:34
Re: Tabelle mit 8600 Datensätzen aufteilen
Hallo, Robert,
das wird rein Arbeitstechnisch ein bisserl fuxen, bis ich alle Dateinamen , Feldnamen, etc. richitg eingetippt sein werden. Ich will auch "Komp_Vorn"||"Komp_Nachn" als Vergleichschlüssel verwenden. Der Extras-SQL- Dialog ist ein bisserl "hölzern".
Das wird einfach nur eine schwierige Fieselarbeit werden.
habe vielen Dank aus Wonneberg
Wasti
das wird rein Arbeitstechnisch ein bisserl fuxen, bis ich alle Dateinamen , Feldnamen, etc. richitg eingetippt sein werden. Ich will auch "Komp_Vorn"||"Komp_Nachn" als Vergleichschlüssel verwenden. Der Extras-SQL- Dialog ist ein bisserl "hölzern".
Das wird einfach nur eine schwierige Fieselarbeit werden.
habe vielen Dank aus Wonneberg
Wasti
Re: Tabelle mit 8600 Datensätzen aufteilen
Hallo Wasti,
ich nehme bei so etwas für den Code einen ganz normalen Editor des Systems. Heißt bei mir hier Kate und kann auch Hervorhebungen für verschiedene Datenbanken, so dass Fehler besser sichtbar sind.
Anschließend kopiere ich das Ergebnis in den Base-Editor und schicke es ab.
Gruß
Robert
ich nehme bei so etwas für den Code einen ganz normalen Editor des Systems. Heißt bei mir hier Kate und kann auch Hervorhebungen für verschiedene Datenbanken, so dass Fehler besser sichtbar sind.
Anschließend kopiere ich das Ergebnis in den Base-Editor und schicke es ab.
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
-
- ! Supporter - Spende !
- Beiträge: 66
- Registriert: So 1. Jan 2017, 11:34
Re: Tabelle mit 8600 Datensätzen aufteilen
Grimmig ! Ich hab´s gekonnt ! Es gibt jetzt eine Tabelle für jedes Stück auf den Platten mit den Verweisen auf Komponisten, etc. sowie für die ausgelagerten Daten je eine Tabelle mit passender ID.
Was ich natürlich nicht bedacht hatte war der Umstand dass die Originaltabelle (Import) lückig ausgefüllt ist, z.B. gibt es nicht zu jedem Stück einen Interpreteneintrag, Die Folge ist natürlich dass Abfragen mit "=" Ergebnisse ohne passende Indizes ignorieren. Da werde ich mein Glück mit Right- und Left- joins versuchen. Oder geht das anders ?
Gruß und Dank aus Wonneberg
Wasti
Was ich natürlich nicht bedacht hatte war der Umstand dass die Originaltabelle (Import) lückig ausgefüllt ist, z.B. gibt es nicht zu jedem Stück einen Interpreteneintrag, Die Folge ist natürlich dass Abfragen mit "=" Ergebnisse ohne passende Indizes ignorieren. Da werde ich mein Glück mit Right- und Left- joins versuchen. Oder geht das anders ?
Gruß und Dank aus Wonneberg
Wasti
Re: Tabelle mit 8600 Datensätzen aufteilen
Hallo Wasti,
wenn Du alle Datensätze aus der Ausgangstabelle haben willst:
Ich arbeite grundsätzlich nur mit dem LEFT JOIN. Links steht dann die Tabelle, die auf jeden Fall alle Datensätze anzeigen soll und rechts die Tabelle, die hin und wieder einen Datensatz dazu gibt.
Gruß
Robert
wenn Du alle Datensätze aus der Ausgangstabelle haben willst:
Code: Alles auswählen
SELECT "Ausgangstabelle".*, "Komponisten".*
FROM "Ausgangstabelle" LEFT JOIN "Komponisten"
ON "Ausgangstabelle"."KomponistenID" = "Komponisten"."ID"
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
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 nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️