🙏 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!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Im Bericht ein Feld anzeigen
Re: Im Bericht ein Feld anzeigen
Moin Robert,
im Zuge meiner Recherche was die Datenbank betrifft, bin ich auf eine Sache gestoßen, die mir irgendwie nicht klar ist. In einigen Datenbanken habe ich in den Abfragen eine Art Pseudo-Tabelleneintrag (a) gesehen. So auch in der Übungsdatei "Quittung", welche Du in einem anderen Threat eingestellt hast, siehe Anhang. Dieser Eintrag (a) taucht auch nicht im Feld "Tabelle oder Abfrage einfügen" auf, weil es diese "Tabelle a" ja nicht gibt.
Ich habe nun ein Verständnisproblem damit, wie dieser Eintrag in der Abfrage zustande kommt, respektive wie man ihn erstellt und für was man diesen benötigt. Ist das eine Art Trick 17?
Gruß
Franky
im Zuge meiner Recherche was die Datenbank betrifft, bin ich auf eine Sache gestoßen, die mir irgendwie nicht klar ist. In einigen Datenbanken habe ich in den Abfragen eine Art Pseudo-Tabelleneintrag (a) gesehen. So auch in der Übungsdatei "Quittung", welche Du in einem anderen Threat eingestellt hast, siehe Anhang. Dieser Eintrag (a) taucht auch nicht im Feld "Tabelle oder Abfrage einfügen" auf, weil es diese "Tabelle a" ja nicht gibt.
Ich habe nun ein Verständnisproblem damit, wie dieser Eintrag in der Abfrage zustande kommt, respektive wie man ihn erstellt und für was man diesen benötigt. Ist das eine Art Trick 17?
Gruß
Franky
- Dateianhänge
-
- Tabelle a.jpg (8.93 KiB) 4450 mal betrachtet
Re: Im Bericht ein Feld anzeigen
Hallo Franky,
ja, eine Art Trick - nennst sich "korrelative Unterabfrage", siehe auch das Handbuch ...
Ist eine Abfrage ohne Alias. Kein Problem, wenn mit den Werten nichts besonderes gemacht werden will.
Ist eine Abfrage mit einer Aliasbezeichnung. Die Tabelle erscheint jetzt in der GUI als "a", nicht mehr als "Tabelle". Wozu das gut sein soll?
Der Unterabfrage sucht aus Tabellexyz den Wert heraus, der zu dem aktuellen Datensatz von Tabelle passt. Damit kannst Du Berechnungen durchführen, die sich immer auf die aktuellen Datensätze beziehen. So kannst Du z.B. bei Kontoauszügen einen laufenden Kontostand, gegebenenfalls noch nach Kategorien aufgesplittet, innerhalb einer Abfrage erzeugen. Und das Gute daran: Du kannst diese Abfrage auch noch weiterhin editieren, d.h. als Grundlage für ein Formular nutzen.
Gruß
Robert
ja, eine Art Trick - nennst sich "korrelative Unterabfrage", siehe auch das Handbuch ...
Code: Alles auswählen
SELECT * FROM "Tabelle"
Code: Alles auswählen
SELECT "a".* FROM "Tabelle" AS "a"
Code: Alles auswählen
SELECT "a".*, (SELECT "Wert" FROM "Tabellexyz" WHERE "ID" = "a"."Tabellexyz_ID") AS "Wert" FROM "Tabelle" AS "a"
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
Re: Im Bericht ein Feld anzeigen
Betrachte die Abfrage mal in dieser Ansicht, dann dürfte sie schlüssiger sein.
Die Tabelle (a) ist Besandteil des Statements und wird in diesem erst gebildet.
VG
Thorsten
Die Tabelle (a) ist Besandteil des Statements und wird in diesem erst gebildet.
VG
Thorsten
- Dateianhänge
-
- Abfrage2.JPG (46.88 KiB) 4449 mal betrachtet
Re: Im Bericht ein Feld anzeigen
Vielen Dank für die ausführliche Erklärung, die Licht in das Dunkel gebracht hat. Vor lauter Hin- und Herklicken in den Datenbanken habe ich jedoch den Blick ins Handbuch schlichtweg vergessen, Asche auf mein Haupt.
Allerdings verhält sich LO (Version Version 4.0.0.3 (Build ID: 7545bee9c2a0782548772a21bc84a9dcc583b89)), Win 8 x64, auf meinem PC so, dass es eine Fehlermeldung gibt, sobald ich im Menü Asicht -> Design-Ansicht an-, ausschalten gehe, um den SQL Code zu betrachten (Bug?). Im Abfragemanager jedoch funktioniert's mit Rechtsklick -> in SQL-Ansicht bearbeiten, um mir den SQL Code anzuzeigen.
Gruß
Franky
Allerdings verhält sich LO (Version Version 4.0.0.3 (Build ID: 7545bee9c2a0782548772a21bc84a9dcc583b89)), Win 8 x64, auf meinem PC so, dass es eine Fehlermeldung gibt, sobald ich im Menü Asicht -> Design-Ansicht an-, ausschalten gehe, um den SQL Code zu betrachten (Bug?). Im Abfragemanager jedoch funktioniert's mit Rechtsklick -> in SQL-Ansicht bearbeiten, um mir den SQL Code anzuzeigen.
Gruß
Franky
Re: Im Bericht ein Feld anzeigen
Hallo Franky,
Base kann die Abfrage so nicht richtig erkennen. Das passiert, sobald eine korrelative Unterabfrage drin ist. Eigentlich wäre es aus der Sicht besser, wenn Base die Abfrage direkt im SQL-Modus öffnen würde. Für andere Konstruktionen macht Base das - warum das bei dieser Konstruktion fehl schlägt kann ich nicht sagen.
Gruß
Robert
Base kann die Abfrage so nicht richtig erkennen. Das passiert, sobald eine korrelative Unterabfrage drin ist. Eigentlich wäre es aus der Sicht besser, wenn Base die Abfrage direkt im SQL-Modus öffnen würde. Für andere Konstruktionen macht Base das - warum das bei dieser Konstruktion fehl schlägt kann ich nicht sagen.
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
Re: Im Bericht ein Feld anzeigen
'N Abend zusammen,
als Unwissender muss ich erneut nerven. In der Übungsdatenbank "Quittung" möchte ich zum probieren gerne die MWSt in die Abfrage "Verkauf_berechnet" einbauen. Dazu habe ich schon die verschiedensten Lösungsansätze in den Weiten des Internets gefunden. So auch eine von Dir, Robert, die da lautet:
SELECT "ID", "Preis", "MWSt", "Preis"/((100+"MWSt") / 100) AS "Netto" FROM "Tabelle"
Da dachte ich mir, oh prima, die baue ich doch mal gleich in angepasster Form zu Übungszwecken in die Übungsdatenbank "Quittung" ein. Kann ja so schwer nicht sein. Fleutchenpiepen - das war'n Satz mit X. Ich stehe mal wieder auf dem Schlauch. Nun frage ich mal in die Runde, wie müsste der SQL Code auf Tabelle "a" bezogen aussehen?
Davon ausgehend, dass
SELECT "Spalten_Name" FROM "Tabellen_Name" WHERE "Bedingung"
ein Ansatz sein könnte, vermutete ich, dass
( SELECT "Preis" * "a"."Anzahl" * 0,19 FROM "Ware" WHERE "ID" = "a"."Ware_ID" ) AS "MWSt" FROM "Ware"
als Ergänzung mich zum Ziel führen könnte, lag natürlich total falsch damit.
Gruß
Franky
als Unwissender muss ich erneut nerven. In der Übungsdatenbank "Quittung" möchte ich zum probieren gerne die MWSt in die Abfrage "Verkauf_berechnet" einbauen. Dazu habe ich schon die verschiedensten Lösungsansätze in den Weiten des Internets gefunden. So auch eine von Dir, Robert, die da lautet:
SELECT "ID", "Preis", "MWSt", "Preis"/((100+"MWSt") / 100) AS "Netto" FROM "Tabelle"
Da dachte ich mir, oh prima, die baue ich doch mal gleich in angepasster Form zu Übungszwecken in die Übungsdatenbank "Quittung" ein. Kann ja so schwer nicht sein. Fleutchenpiepen - das war'n Satz mit X. Ich stehe mal wieder auf dem Schlauch. Nun frage ich mal in die Runde, wie müsste der SQL Code auf Tabelle "a" bezogen aussehen?
Davon ausgehend, dass
SELECT "Spalten_Name" FROM "Tabellen_Name" WHERE "Bedingung"
ein Ansatz sein könnte, vermutete ich, dass
( SELECT "Preis" * "a"."Anzahl" * 0,19 FROM "Ware" WHERE "ID" = "a"."Ware_ID" ) AS "MWSt" FROM "Ware"
als Ergänzung mich zum Ziel führen könnte, lag natürlich total falsch damit.
Gruß
Franky
Re: Im Bericht ein Feld anzeigen
Hallo Franky,
... und all das ohne FROM "Ware", da das ja eine korrelative Unterabfrage zu "Verkauf" AS "a" ist.
Gruß
Robert
Vorsicht mit dem Komma. Das ist in Abfragen für die Auftrennung von Feldern vorgesehen. In LO 3.3.4 führt so ein Code unweigerlich zum Absturz von Base. In LO der neueren Version will Base eine zusätzliche Spalte gründen - und die geht nicht bei einer Unterabfrage. Also: wenn schon, dann mit einem Dezimalpunkt arbeiten. Und da in der Tabelle, soweit ich das jetzt aus dem Gedächtnis aufschreibe, die MWSt als zweistellige Ziffernfolge steht, müsste das wohl folgendermaßen gehen:Mr. Cutty hat geschrieben: ( SELECT "Preis" * "a"."Anzahl" * 0,19 FROM "Ware" WHERE "ID" = "a"."Ware_ID" ) AS "MWSt" FROM "Ware"
Code: Alles auswählen
( SELECT "Preis" * "a"."Anzahl" *"MWSt"/100 FROM "Ware" WHERE "ID" = "a"."Ware_ID" ) AS "MWSt"
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
Re: Im Bericht ein Feld anzeigen
Mr. Cutty hat geschrieben: ... mal gleich in angepasster Form
Code: Alles auswählen
( SELECT "Preis" * "a"."Anzahl" * 0,19 FROM "Ware" WHERE "ID" = "a"."Ware_ID" ) AS "MWSt" FROM "Ware"

Code: Alles auswählen
SELECT ("Ware"."Preis" * "a"."Anzahl" * 0.19) AS "MWSt" FROM "Ware", "a" WHERE "Ware"."ID" = "a"."Ware_ID"
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
Re: Im Bericht ein Feld anzeigen
Moin zusammen,
vielen Dank für Eure Antworten und Eure Geduld. Werde das nachher mal umzusetzen versuchen.
Edit:
Tja, so wie es sich darstellt, mag es die hier installierte LO Version nicht, wenn ich den SQL Code ändere. Daran ändert selbst ein Update von Java auf die neueste Version nichts. Dabei spielt es keine Rolle, ob ich den Code über den optischen Abfragenmanager ändere oder direkt im Syntaxeditor - in beiden Fällen kommt es beim Versuch abspeichern zu wollen zu einer Fehlermeldung "Syntax error in SQL expression". Das Gleiche passiert übrigens auch, wenn ich via F5 die Abfrage versuchsweise laufen lassen möchte. Das ist in den letzten Tagen auch mit verschiedenen anderen SQL Codes so passiert.
LO mag es anscheinend auch nicht, wenn ich im SQL Editor Anführungszeichen (") eingebe. Noch bevor ich was ändern kann, stürtzt LO sofort und ohne weitere Vorwarnung ab. Keine Ahnung, ob es nun an meinen bescheidenen SQL-Kenntnissen liegt oder an LO selbst.
Gruß
Franky
vielen Dank für Eure Antworten und Eure Geduld. Werde das nachher mal umzusetzen versuchen.
Edit:
Tja, so wie es sich darstellt, mag es die hier installierte LO Version nicht, wenn ich den SQL Code ändere. Daran ändert selbst ein Update von Java auf die neueste Version nichts. Dabei spielt es keine Rolle, ob ich den Code über den optischen Abfragenmanager ändere oder direkt im Syntaxeditor - in beiden Fällen kommt es beim Versuch abspeichern zu wollen zu einer Fehlermeldung "Syntax error in SQL expression". Das Gleiche passiert übrigens auch, wenn ich via F5 die Abfrage versuchsweise laufen lassen möchte. Das ist in den letzten Tagen auch mit verschiedenen anderen SQL Codes so passiert.
LO mag es anscheinend auch nicht, wenn ich im SQL Editor Anführungszeichen (") eingebe. Noch bevor ich was ändern kann, stürtzt LO sofort und ohne weitere Vorwarnung ab. Keine Ahnung, ob es nun an meinen bescheidenen SQL-Kenntnissen liegt oder an LO selbst.
Gruß
Franky
Re: Im Bericht ein Feld anzeigen
1. die Option "SQL direkt ausführen" aktivieren - hat schon oft geholfen 
2. Test-DB mal hochladen (sensible Daten vorher killen)

2. Test-DB mal hochladen (sensible Daten vorher killen)
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu
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.