🙏 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. 🤗

Abfrage soll unvollständige Datensätze ausgeben

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Maltan
Beiträge: 25
Registriert: Sa 3. Nov 2012, 18:07

Abfrage soll unvollständige Datensätze ausgeben

Beitrag von Maltan » Mi 16. Dez 2020, 09:46

Hallo zusammen,
ich habe eigentlich nur eine kleine Bitte. Die gefilterten Daten (Formular Suche/Filterformular) und somit auch die Berichte die auf die Abfrage "Abfr_Name_Datum_Bez" basieren sollten auch unvollständige Datensätze anzeigen.
Diese Abfrage ist für mich schon schwer zu deuten. Könnte mir bitte jemand den SQL-Code dieser Abfrage dementsprechend anpassen. Habe etwas von "INFULL" aufgeschnappt!? Vielen Dank im Voraus

gez. Murkser
libreforum.zip

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

Re: Abfrage soll unvollständige Datensätze ausgeben

Beitrag von RobertG » Mi 16. Dez 2020, 18:32

Hallo Murkser,

das Ganze liegt daran, dass schlicht in einigen Tabellen keine Daten sind. Und wenn z.B. "Dienste" leer ist und Du verbindest diese mit anderen Tabellen, dann bekommst Du nur ein leeres Ergebnis raus. Du musst mit so etwas wie LEFT JOIN arbeiten. Dazu muss aber erst einmal klar sein, welches denn in Deinem Sammelsurium die Haupttabelle ist, die auf jeden Fall angezeigt werden soll.

Ich habe die Beziehungen einmal erstellt und komme darauf, dass genau die Tabelle "Dienste" die zentrale Tabelle ist. Ohne Inhalte in dieser Tabelle bleibt die Anzeige immer leer.

In die Tabelle gehört vor der Angabe des ganzen Filter-Inhaltes

Code: Alles auswählen

 FROM "Dienste" LEFT JOIN "Personal" ON "Dienste"."Pers_id" = "Personal"."ID" LEFT JOIN "Schicht" ON "Schicht"."ID" = "Dienste"."Schicht_id" LEFT JOIN "Teams" ON "Teams"."ID" = "Dienste"."Teams_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

Maltan
Beiträge: 25
Registriert: Sa 3. Nov 2012, 18:07

Re: Abfrage soll unvollständige Datensätze ausgeben

Beitrag von Maltan » Do 17. Dez 2020, 07:11

Vielen Dank zunächst. Habe die Daten aus Datenschutzgründen gelöscht. Auch mit Daten wurden keine Datensätze in der Abfrage angezeigt. Ich versuche mit JOIN zum erfolgt zu kommen.

Maltan
Beiträge: 25
Registriert: Sa 3. Nov 2012, 18:07

Re: Abfrage soll unvollständige Datensätze ausgeben

Beitrag von Maltan » Do 17. Dez 2020, 07:42

Datensätze wurden nur angezeigt wenn der Datensatz vollständig war und keine leeren Felder enthielt

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

Re: Abfrage soll unvollständige Datensätze ausgeben

Beitrag von RobertG » Do 17. Dez 2020, 07:56

Hallo Maltan,

mach zuerst einmal die Beziehung zwischen den Tabellen fertig.
Setze dann die Datenbank mit ein paar Dummydatensätzen wieder ins Netz, damit klar wird, was Du erwartest und was wirklich fehlt.

Wie beschrieben. Ohne Daten kann natürlich auch nichts angezeigt werden. Da kann jede(r) Helfer(in) nur im Trüben fischen.

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

Maltan
Beiträge: 25
Registriert: Sa 3. Nov 2012, 18:07

Re: Abfrage soll unvollständige Datensätze ausgeben

Beitrag von Maltan » Do 17. Dez 2020, 09:46

Habe leider auch mit Beziehungen keine große Ahnung. Man hat mir hier einmal weitergeholfen mit einem Filter über eine Parameterabfrage (siehe SQL "Abfr_Name_Datum_Bez"). Ich glaube das heisst so. Dazu habe ich keine Beziehungen setzen müssen. Die Datenbank habe ich noch einmal mit Dummys angehängt. Zwei Datensätze, einer vollständig der andere unvollständig im Sinne der Parameterabfrage (siehe Bildanhang). Ebenfalls als Bildanhang die Ansichten des Filterformulars "Suche" und der Haupttabelle "Dienste" . Vielleicht gibt es ja für mich eine einfache Lösung auch die unvollständigen Datensätze im Suchformular ="Abfr_Name_Datum_Bez" anzueigen weil daraus auch mein Bericht gespeist wird. :roll:
Vielen Dank
Dateianhänge
Suchformular.jpg
Suchformular.jpg (21.85 KiB) 1890 mal betrachtet
Parameterabfrag.jpg
Parameterabfrag.jpg (33.48 KiB) 1890 mal betrachtet
Datensätze teils unvollständig.jpg
Datensätze teils unvollständig.jpg (15.76 KiB) 1890 mal betrachtet
libreforum.zip
(69.1 KiB) 108-mal heruntergeladen

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

Re: Abfrage soll unvollständige Datensätze ausgeben

Beitrag von RobertG » Do 17. Dez 2020, 13:08

Hallo Maltan,

vermutlich suchst Du diesen Code für die Abfrage:

Code: Alles auswählen

SELECT "Dienste"."ID", "Dienste"."Datum", "Dienste"."Termin", 
"Dienste"."Bemerkung", "Personal"."Name", "Schicht"."Bezeichnung", 
"Teams"."Gruppe", "Schicht"."Reih_id" 
FROM "Dienste" 
LEFT JOIN "Personal" ON "Dienste"."Pers_id" = "Personal"."ID" 
LEFT JOIN "Schicht" ON "Schicht"."ID" = "Dienste"."Schicht_id" 
LEFT JOIN "Teams" ON "Teams"."ID" = "Dienste"."Teams_id", 
"Filter" WHERE 
( LOWER ( "Personal"."Name" ) LIKE LOWER ( "F_NAME" || '%' ) OR "F_NAME" IS NULL ) 
AND ( LOWER ( "Schicht"."Bezeichnung" ) LIKE LOWER ( "F_BEZEICHNUNG" || '%' ) OR "F_BEZEICHNUNG" IS NULL ) 
AND ( LOWER ( "Teams"."Gruppe" ) LIKE LOWER ( "F_GRUPPE" || '%' ) OR "F_GRUPPE" IS NULL ) 
AND ( "Dienste"."Datum" >= "F_DATUM_VON" OR "F_DATUM_VON" IS NULL ) 
AND ( "Dienste"."Datum" <= "F_DATUM_BIS" OR "F_DATUM_BIS" IS NULL ) 
AND ( "Dienste"."Termin" >= "F_TERMIN_VON" OR "F_TERMIN_VON" IS NULL ) 
AND ( "Dienste"."Termin" <= "F_TERMIN_BIS" OR "F_TERMIN_BIS" IS NULL ) 
ORDER BY "Dienste"."Datum", "Dienste"."Termin", "Schicht"."Reih_id" ASC
Mach' daraus einmal eine neue Abfrage und schau Dir das an.

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


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