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

(gelöst) Abfrage von Wahrheitswerten

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Freischreiber
* LO-Experte *
Beiträge: 834
Registriert: Fr 28. Mär 2014, 10:41

Re: Abfrage von Wahrheitswerten

Beitrag von Freischreiber » Mo 22. Dez 2014, 15:54

Danke, hat geklappt! Ich hab immer Bammel vor dem Beziehungen löschen, aber eigentlich kann, solange man ohne Beziehung keine neuen Daten eingibt, nichts passieren, oder?

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

Freischreiber
* LO-Experte *
Beiträge: 834
Registriert: Fr 28. Mär 2014, 10:41

Re: Abfrage von Wahrheitswerten

Beitrag von Freischreiber » Mo 22. Dez 2014, 15:59

Hallo Robert,

eine Frage noch:

Dieser praktische Befehl hier:

Code: Alles auswählen

UPDATE "Table" SET "bool_field"=False WHERE "bool_field" Is Null
Kann man den auch auf eine Abfrage anwenden? Ich würde gerne in meiner Rechnungsnummern-Tabelle eine Spalte "Rechnung noch offen" einführen, die standardmäßig WAHR enthalten soll. Bei allen Rechnungsnummern, wo der zugehörige Auftrag (in der Auftragstabelle) schon geschlossen ist, würde ich gerne mit so einem Befehl auch die Frage "Rechnung noch offen" in der Tabelle mit den Rechnungsnummern automatisch auf FALSCH setzen, weil der Auftrag natürlich nur geschlossen wurde, wenn auch die Rechnung bezahlt war. t-aufträge und t-rechnungen stehen in 1:n-Beziehung.

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

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

Re: Abfrage von Wahrheitswerten

Beitrag von RobertG » Mo 22. Dez 2014, 16:29

Hallo Freischreiber,

unter Extras → SQL kannst Du nicht direkt auf die Abfragen Deiner *.odb-Datei zugreifen. Du willst aber ja auch nicht einen Wert in einer Abfrage vorübergehend ändern, sondern tatsächlich einen Wert in einer Tabelle.

Da Du den Wert abhängig von den Eintragungen in einer anderen Tabelle siehst erschließt sich mir der Sinn des Feldes nicht, das Du da erstellen willst. Schließlich kannst Du doch genau die Information aus einer anderen Tabelle heraus holen und auch anzeigen lassen, die Du jetzt zusätzlich noch mit einem Ja/Nein-Feld versehen willst. Du willst so gleichlautende Informationen an verschiedenen Stellen der Datenbanken aufbewahren. Wenn so eine Datenbank nicht hundertprozentig geführt wird werden die Informationen darin wertlos.

Ich habe so etwas einmal bei einer Datenbank (nicht Base) für einen Sportverein gesehen. Da konnte die Person, die die Datenbank führte, letztlich nicht genau sagen, wie viele Mitglieder der Verein nun hatte und wieso die Zahl zwischenzeitlich schwankte usw. Ein typischer Fall von falschem Datenbankdesign, der dann dazu führte, dass wir eine zweite Datenbank aufgebaut haben, mit der wir dann die Post verschickt haben ...

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

Freischreiber
* LO-Experte *
Beiträge: 834
Registriert: Fr 28. Mär 2014, 10:41

Re: Abfrage von Wahrheitswerten

Beitrag von Freischreiber » Mo 22. Dez 2014, 16:45

Hallo Robert,

also ich hoffe nicht, daß ich hier einen Fall von falschem Datenbankdesign produziert habe :?

Zu einem Auftrag kann es mehrere Rechnungen geben, daher will ich die Frage, ob eine Rechnung noch offen ist, separat erfassen.

Wenn ich diese Spalte einfüge, habe ich eine Menge alter Rechnungsnummern, die ich auf NULL lassen kann oder, weil ich das nicht will, auf WAHR oder FALSCH stellen muß, damit ich das Feld als "Erforderlich" markieren kann.

Was soll ich also anders machen? Es betrifft nur die Altbestände, für die die Spalte aber logischerweise auch eingeführt wird. Also braucht sie eine Antwort, und die wollte ich aus der Auftragstabelle holen (wenn schon der Auftrag nicht mehr offen ist, kann es die Rechnung auch nicht mehr sein).

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

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

Re: Abfrage von Wahrheitswerten

Beitrag von RobertG » Mo 22. Dez 2014, 16:50

Hallo Freischreiber,

Du musst doch irgendwo hinterlegt haben, dass für die Rechnung ein (kompletter) Betrag eingegangen ist.
Du musst an anderer Stelle hinterlegt haben, wie viele Rechnungen nach einem ASuftrag erfolgt sind bzw. noch ausstehen.

Die Informationen holst Du doch aus der datenbank, oder hast Du da Altbestände irgendwo liegen, die nicht in der Datenbank stehen und jetzt noch zu Ende geführt werden müssen?

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

Freischreiber
* LO-Experte *
Beiträge: 834
Registriert: Fr 28. Mär 2014, 10:41

Re: Abfrage von Wahrheitswerten

Beitrag von Freischreiber » Mo 22. Dez 2014, 16:57

Hallo Robert,

nein, das ist genau das Problem: alle bisherigen Rechnungsnummern stammen aus einer Excel-Tabelle, ohne Erstelldatum und ohne Rechnungsbetrag. Ob sie bezahlt wurden, hatte ich völlig außerhalb der Tabellen erfaßt - also unsystematisch. Du machst dir von dem Elend VOR Base gar kein Bild :lol:

Die neue Spalte "Rechnung noch offen" und die beiden anderen (Erstelldatum und Betrag) sollen genau diese Informationen in die Datenbank bringen. Und für die alten Rechnungsnummern will ich die Informationen aus der Datenbank nutzen, die ich schon habe: Auftrag zu --> Rechnung bezahlt). Bei Erstelldatum und Betrag ist es mir egal, ob die für die alten Nummern leer bleiben.

Daher wäre es schön gewesen, mit SQL-Befehl die per Abfrage ermittelten Wahrheitswerte auf FALSCH setzen zu können. Jeder andere Weg wäre mir auch recht. Nur Handarbeit wäre schlecht...

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

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

Re: Abfrage von Wahrheitswerten

Beitrag von RobertG » Mo 22. Dez 2014, 17:46

Hallo Freischreiber,

Du kannst doch den Inhalt der Abfrage (SQL-Code) als Grundlage für Deine SQL-Eingabe nehmen. Deine Abfrage muss als Ergebnis ein einziges Feld der Tabelle leifern, das dann als Filter benutzt wird um das Update durchzuführen.
So etwa in der folgenden Art:

Code: Alles auswählen

UPDATE "Tabelle" SET "Erledigt" = True WHERE "ID" IN (SELECT "altID" FROM "altTabelle" WHERE ........)
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

Freischreiber
* LO-Experte *
Beiträge: 834
Registriert: Fr 28. Mär 2014, 10:41

Re: Abfrage von Wahrheitswerten

Beitrag von Freischreiber » Mo 22. Dez 2014, 17:56

Hallo Robert,

so?

Code: Alles auswählen

UPDATE "t-rechnungen" SET "Offen" = FALSE WHERE "t-aufträge"."Offen" IN (SELECT "ID" FROM "t-aufträge" WHERE "t-aufträge"."ID = "t-rechnungen"."AuftragID") = FALSE
(Offen in der Rechnungstabelle bei den Aufträgen auf falsch setzen, wo auch das Offen des Auftrags falsch ist)

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

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

Re: Abfrage von Wahrheitswerten

Beitrag von RobertG » Mo 22. Dez 2014, 18:21

Hallo Freischreiber,
Freischreiber hat geschrieben:

Code: Alles auswählen

UPDATE "t-rechnungen" SET "Offen" = FALSE WHERE "t-aufträge"."Offen" IN (SELECT "ID" FROM "t-aufträge" WHERE "t-aufträge"."ID = "t-rechnungen"."AuftragID") = FALSE
nein, Du willst doch die Tabelle "t-rechnungen" ändern. Also nicht "t-aufträge"."Offen" IN sondern "AuftragID" IN ...

Code: Alles auswählen

UPDATE "t-rechnungen" SET "Offen" = FALSE WHERE "AuftragID" IN (SELECT "t-aufträge"."ID" FROM "t-aufträge", "t-rechnungen" WHERE "t-aufträge"."ID = "t-rechnungen"."AuftragID") = FALSE
Die Abfrage liefert ID-Werte, die überprüft werden sollen. In der Update-Anweisung selbst darf nur eine Tabelle stehen.

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

Freischreiber
* LO-Experte *
Beiträge: 834
Registriert: Fr 28. Mär 2014, 10:41

Re: Abfrage von Wahrheitswerten

Beitrag von Freischreiber » Mo 22. Dez 2014, 18:31

Hallo Robert,

es tut mir leid, aber ich stehe auf dem Schlauch.

Code: Alles auswählen

WHERE "AuftragID" IN (Abfragetabelle) = FALSE
Aber "AuftragID" wird doch niemals FALSE sein... irgendwo muß ich doch prüfen, ob "Offen" in der t-aufträge FALSE ist? Die Auftragstabelle hat eine Spalte "Offen", an der sich die Spalte "Offen" der Rechnungstabelle orientieren soll.

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de


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