Hallo,
nachdem ich meine Datenbankanwendung schon fast fertig habe und Alles erst einmal funktioniert, müssen nun nur noch einige errechnete Werte in das Eingabeformular eingefügt werden. Ich dachte, das wäre sehr einfach, komme aber z.Zt. nicht weiter. Ich habe im Handbuch und in diesem Forum ähnliche Beispiele gefunden, die ich aber nicht anpassen konnte. Ich verstehe noch nicht, warum in Abfragen wohl immer die gesamte Datenmenge behandelt werden muss, auch dann wenn die Abfrage für ein Anzeigefeld schon unterhalb einer vorhandenen Abfrage liegt.
Um meine Probleme einfacher darzustellen, habe ich meine Datenbank mit einigen Beispieldaten gefüllt und im Anzeige- und Eingabeformular die problematischen Felder gekennzeichnet.
Ich hoffe, das damit jemand meine Fehler nachvollziehen und mir evtl. eine Lösung nennen kann.
Vielen Dank im Voraus!
Gruß
chico
🙏 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. 🤗
Aggregate-Funktionen und Unterabfragen
Re: Aggregate-Funktionen und Unterabfragen
Hi chico,
Im angehängten Beispiel ist für die Anzeige der Mitversorgten im Formular eine Lösung enthalten:
Dazu ist ein neues Unterformular unter "SubF_Versorgte" erforderlich und erstellt: "SubSubF_ZahlVersorgte".
Eine neue Abfrage "Ab_Mitversorgt" ist die Datenquelle dafür.
Verknüpft ist das Unterformular von "Kunden_ID" zu "Kunde".
In das neue Unterformular habe ich das Feld "Numerisches Feld 1" verschoben und in "ZahlMitversorgt" umbenannt.
Datenfeld dafür ist "Anzahl Mitversorgt" aus der Abfrage "Ab_Mitversorgt".
Und noch ein Beschriftungsfeld zugefügt.
Die anderen Felder Deines Formulars kannst Du entaprechend selbst ändern. (Deinen SQL-Befehl für das Unterformular "SubSubSumme" habe ich gelöscht, weil beim Formularstart eine Fehlermeldung kam.)
Gruß acco
Ich habe nicht kapiert, was Du damit meinst, aber seis drum.chico hat geschrieben: Ich verstehe noch nicht, warum in Abfragen wohl immer die gesamte Datenmenge behandelt werden muss, auch dann wenn die Abfrage für ein Anzeigefeld schon unterhalb einer vorhandenen Abfrage liegt.
Im angehängten Beispiel ist für die Anzeige der Mitversorgten im Formular eine Lösung enthalten:
Dazu ist ein neues Unterformular unter "SubF_Versorgte" erforderlich und erstellt: "SubSubF_ZahlVersorgte".
Eine neue Abfrage "Ab_Mitversorgt" ist die Datenquelle dafür.
Verknüpft ist das Unterformular von "Kunden_ID" zu "Kunde".
In das neue Unterformular habe ich das Feld "Numerisches Feld 1" verschoben und in "ZahlMitversorgt" umbenannt.
Datenfeld dafür ist "Anzahl Mitversorgt" aus der Abfrage "Ab_Mitversorgt".
Und noch ein Beschriftungsfeld zugefügt.
Die anderen Felder Deines Formulars kannst Du entaprechend selbst ändern. (Deinen SQL-Befehl für das Unterformular "SubSubSumme" habe ich gelöscht, weil beim Formularstart eine Fehlermeldung kam.)
Gruß acco
- Dateianhänge
-
- test_kunden_1.zip
- (21.98 KiB) 226-mal heruntergeladen
openSUSE Tumbleweed - LibreOffice 24.8.2.1
Re: Aggregate-Funktionen und Unterabfragen
Hi Acco,
vielen Dank für Deine schnelle und kompetente Antwort, ich kann alles nachvollziehen und es funktioniert.
Zu meiner seltsamen 'Denkschleife' :
Ich habe gedacht, man kann einfach die Anzahl der Zeilen im SubGrid_Mitversorgte zählen, die entsprechen ja der Anzahl der Mitversorgten.
Jetzt weiß ich wie man vorgeht und hoffe, auch meine Summen-Abfragen entsprechend formulieren zu können.
Ich wünsche eine schöne Woche!
Gruß
chico
vielen Dank für Deine schnelle und kompetente Antwort, ich kann alles nachvollziehen und es funktioniert.
Zu meiner seltsamen 'Denkschleife' :
Ich habe gedacht, man kann einfach die Anzahl der Zeilen im SubGrid_Mitversorgte zählen, die entsprechen ja der Anzahl der Mitversorgten.
Jetzt weiß ich wie man vorgeht und hoffe, auch meine Summen-Abfragen entsprechend formulieren zu können.
Ich wünsche eine schöne Woche!
Gruß
chico
Re: Aggregate-Funktionen und Unterabfragen
Hi chico,
Eine wetere Möglichkeit: Im neuen Unter-Formular als Datenquelle einen SQL-Befehl einzugeben, z.B. für Anzahl der Kinder Dann hast Du die Abfrage direkt im Formular, aber nicht mehr sichtbar im Abfrage-Fenster der Datenbank. Ist halt "Geschmackssache" was man einsetzen will.
Gruß acco
Das ist auch möglich, aber dazu brauchst Du dann ein Makro. Das setze ich erst ein, wenn ich anders keine Lösung finde.chico hat geschrieben:Ich habe gedacht, man kann einfach die Anzahl der Zeilen im SubGrid_Mitversorgte zählen...
Eine wetere Möglichkeit: Im neuen Unter-Formular als Datenquelle einen SQL-Befehl einzugeben, z.B. für Anzahl der Kinder
Code: Alles auswählen
SELECT "Kunden_ID", COUNT("Kunden_ID") FROM "Kinder" GROUP BY "Kunden_ID"
Gruß acco
openSUSE Tumbleweed - LibreOffice 24.8.2.1
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.