Neu:

  Keine Werbeeinblendungen für registrierte User

  ❤ Jede SPENDE hilft unserer Community ❤



  🌹 Danke für Eure Unterstützung 🙏


komplexe berechnete Felderin Abfragen

BASE ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit OpenOffice.org zu bearbeiten.
F3K Total
Beiträge: 914
Registriert: Mo 1. Aug 2011, 00:03

Re: komplexe berechnete Felderin Abfragen

Beitrag von F3K Total » Fr 27. Mär 2020, 18:36

Schau dir mal das Bild an:
BB_LI.jpg
BB_LI.jpg (202.98 KiB) 1700 mal betrachtet
Führe die Abfrage im direkten SQL-Mode aus und entferne die Quotes um das Wort Day Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

BBMonster
Beiträge: 19
Registriert: Sa 16. Feb 2019, 17:26

Re: komplexe berechnete Felderin Abfragen

Beitrag von BBMonster » Sa 28. Mär 2020, 09:40

Hallo R.
hab ich getan und es hat funktioniert, was zeigt, daß ich falsch gefragt habe:
Geschärfte Frage: Was muß ich tun, um diese Abfrage zu speichern und später wieder aufrufen zu können bzw. sie in anderen Abfragen weiterverwenden zu können. Nach meinem Bild kann ich im SQL-Direktfenster keine Abfragen speichern oder mit anderen Abfragen kombinieren.
Der einzige Weg, den ich in Libreoffice sehe ist der über eine Abfrage. Übersehe ich da was?
Gruß
BBMonster

F3K Total
Beiträge: 914
Registriert: Mo 1. Aug 2011, 00:03

Re: komplexe berechnete Felderin Abfragen

Beitrag von F3K Total » Sa 28. Mär 2020, 10:15

Moin,
Ich kann Abfragen speichern, siehe Anhang.
Wenn die Kombination meherer Abfragen nicht funktioniert, nehme ich Ansichten, siehe auch Beispiel.
Da man eine erstellte Ansicht unter Firebird nicht im SQL-MOdus bearbeiten kann, habe ich eine Hilfsabfrage erstellt, (Abfrage_VIEW_DEFINITIONS, siehe Bild) die wenigstens die Definitionen der Ansichten zeigt. Ändern heißt dann wohl löschen und neu erstellen. Das ist bei der HSQL-DB besser.

Gruß R
Dateianhänge
BBMONSTER_GD.odb
(70.02 KiB) 44-mal heruntergeladen
BBVD.png
BBVD.png (7.61 KiB) 1684 mal betrachtet
Windows 10: AOO, LO Linux Mint: AOO, LO

BBMonster
Beiträge: 19
Registriert: Sa 16. Feb 2019, 17:26

Gelöst komplexe berechnete Felderin Abfragen

Beitrag von BBMonster » Sa 28. Mär 2020, 11:31

Hallo R.
das sieht jetzt wirklich gut aus und ich werde nun versuchen, meine Scratchtabelle zu eliminieren.
Vielen Dank für Deine Hilfe :)
Gruß
BBMonster

F3K Total
Beiträge: 914
Registriert: Mo 1. Aug 2011, 00:03

Re: komplexe berechnete Felderin Abfragen

Beitrag von F3K Total » Sa 28. Mär 2020, 18:22

Na, wäre doch schick! Meldest du dich nochmal, wenn es geklappt hat?
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

BBMonster
Beiträge: 19
Registriert: Sa 16. Feb 2019, 17:26

Re: komplexe berechnete Felderin Abfragen

Beitrag von BBMonster » So 29. Mär 2020, 11:04

Hallo R mache ich,
aber ich denke, ich muss erst nochmal Andrew Pitonyaks Dokument lesen. Ich hoffe, dort finde ich, wie ich parametrisierte Abfragen verwende.
Wir in einer meiner Antworten beschrieben, muß ich mehrere gleitende Durchschnitte bilden und diese letztlich in einem Wert kombinieren, d.h ich würde gerne wegen der Wartbarkeit nur eine Ansicht für einen gleitenden Durchschnitt haben und dieser mitgeben, ab welchem Datum der Durchschnitt gebildet werden soll. Wenn ich dann auch noch die Anzahl der Elemente des Durchschnitts als Parameter mitgeben könnte, mein doVerzinsungN abgebildet.
Ich habe in dem Dokument, das Du mir gezeigt hast gesehen, dass man auch eigene Routinen bei der Datenbank anmelden kann. So wie ich das sehe müsste ich dazu meine 30 Jahre alten C++-Kentnisse wieder auffrischen und eine DLL für einen C++-Zehnzeiler erzeugen.
Könnte also ein bischen dauern.
Nochmals vielen Dank für Deine Hilfe, sie hat mich "gezwungen" eine andere Perspektive einzunehmen, was generell keine schlechte Idee bei Problemen ist.
Bleib gesund in diesen Zeiten
Gruß
BBMonster :)

F3K Total
Beiträge: 914
Registriert: Mo 1. Aug 2011, 00:03

Re: komplexe berechnete Felderin Abfragen

Beitrag von F3K Total » So 29. Mär 2020, 11:47

Hallo BBMonster,
ich denke in Sachen SQL ist der Herr Pitonyaks nicht die richtige Wahl. Um Variablen zwischenzuspeichern nehme ich in DBs lieber eine, oft einzeilige, Filtertabelle. Auch, wenn ich weiss, dass die Rechnung noch nicht passt, das Prinzip kannst du in der angehängten Datei sehen. Im Formular wähle ich mit der Listbox den Zeitraum, schreibe den Wert in die Tabelle tbl_filter und verwende ihn dann in der Ansicht vMittelwert die qMittelwert entspricht:

Code: Alles auswählen

SELECT 
    "kurDatum", 
    CAST(SUM( "VALUE" ) / COUNT( "VALUE" ) AS DECIMAL(10,2)) "MW" 
FROM 
    (SELECT * 
     FROM 
         "tblKurse" 
     where
         DATEDIFF(Day,"kurDatum", CURRENT_DATE)<(SELECT
                                                     "F_DAYS"
                                                 FROM
                                                     "tbl_filter")
     )
     GROUP BY "kurDatum"
hier entspricht

Code: Alles auswählen

SELECT
    "F_DAYS"
FROM
     "tbl_filter"
eben dem in der Listbox gewählten Zeitraum.

Gruß R
Dateianhänge
BBMONSTER_GD.odb
(79.15 KiB) 46-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO

BBMonster
Beiträge: 19
Registriert: Sa 16. Feb 2019, 17:26

Re: komplexe berechnete Felderin Abfragen

Beitrag von BBMonster » So 29. Mär 2020, 12:41

Hallo R,
Idee verstanden, muß ich drüber nachdenken :-)
Wenn ich jetzt mal geistig einen Schritt zurückmache war mein erster Ansatz, meine Funktion doVerzinsungN in eine Abfrage / die Definition eines berechneten Feldes einzubauen. Als das scheiterte, bin ich in meiner jetzigen Lösung auf eine Scratchtabelle ausgewichen, die ich mit den "eigentlichen" Tabellen per Join kombiniere. Damit habe ich das gewünschte Ergebnis auch tatsächlich erzielt.

Bei dieser Lösung ist es wegen der Lesbarkeit/Wartbarkeit der Formeln unerfreulich, dass ich bei den Abfragen viele Abfragen hintereinenderschalten muß. Falls Du hier eine Möglichkeit kennst, einen Alias in der gleichen Abfrage weiterzuverwenden und nicht erst in der Folgeabfrage, wäre ich Dir dankbar.

So wie ich das sehe, diskutieren wir jetzt ebenfalls über eine Scratchtabelle, nur mit anderem Inhalt, damit wäre die Lösung mit der Filtertabelle mit meiner derzeitigen Lösung vergleichbar. Wenn ich das nicht will bleibt wahrscheinlich die C++-Lösung übrig (Ich wollte mich ohnehin mal mit Eclipse beschäftigen).
Die C++-Lösung würde dann wieder völlig ohne Zwischenspeicherung auskommen, denn sie sähe der heutigen doVerzinsungN(ISIN, Basisdatum, Dauer), die ich genauso im ursprünglichen Calc-Sheet verwende, sehr ähnlich.

Aber wie gesagt: erstmal eine Güterabwägung, dann eine Entscheidung. Noch ist für mich nicht klar, ob beim jetzigen Diskussionsstand immer noch eine Zwischentabelle erforderlich ist.

Da meine jetzige Scratchtabelle nur dann neu geschrieben wird, wenn ich neue Marktdaten abrufe, war die Umsetzung auch einfach und ohne Trigger und andere Verenkungen umsetzbar.
Viele Grüße
BBMonster

F3K Total
Beiträge: 914
Registriert: Mo 1. Aug 2011, 00:03

Re: komplexe berechnete Felderin Abfragen

Beitrag von F3K Total » So 29. Mär 2020, 12:52

Hallo BBMonster,
BBMonster hat geschrieben:
So 29. Mär 2020, 12:41
So wie ich das sehe, diskutieren wir jetzt ebenfalls über eine Scratchtabelle, nur mit anderem Inhalt, damit wäre die Lösung mit der Filtertabelle mit meiner derzeitigen Lösung vergleichbar.
Veto:
Die Filtertabelle dient wirklich nur der Aufnahme einiger Variablen, und wird eben gerade nicht per Makro, sondern mit Bordmittel, sprich einem Formular mit Listbox, befüllt.
BBMonster hat geschrieben:
So 29. Mär 2020, 12:41
Aber wie gesagt: erstmal eine Güterabwägung, dann eine Entscheidung
Genau, und da wunderst du dich bestimmt, weswegen ich so auf der "ohne-Code-Lösung" herumreite: Einfach deswegen, weil ich im Laufe der Jahre festgestellt habe, das jedes vermiedene Makro die DB stabiler macht. Ist meine Philosophie. Muss nicht stimmen!
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

BBMonster
Beiträge: 19
Registriert: Sa 16. Feb 2019, 17:26

Re: komplexe berechnete Felderin Abfragen

Beitrag von BBMonster » Mo 30. Mär 2020, 17:19

Hallo R.
ich versuche mich gerade an Deiner Beispieldatenbank BBMonster_GD. Dort hattest Du mir die Ansicht "Ansicht1" und die Abfrage "Abfrage1" definiert. Beide zeigen die gleichen Daten.
Ich habe versucht, ein Duplikat von der funktionierenden Abfrage1 herzustellen, indem ich sie in der SQL-Ansicht öffne, das SQL kopiere (=SELECT * FROM "tblKurse" where DATEDIFF(Day,"kurDatum", CURRENT_DATE)<30 ) und in eine neue Abfrage reinkopiere. Wenn ich diese Daten anzeigen will, kriege ich die Meldung "Syntaxfehler im SQL-Ausdruck". Die gleiche Meldung bekomme ich, wenn ich in der Kategorie "Tabellen" eine Ansicht erstelle und dort das SQL reinkopiere, dabei sieht das SQL-Statement doch absolut korrekt aus.
Ich kann in der von Dir geschickten Datenbank selber eine Ansicht erstellen (Tabellen, Ansicht erstellen), deren Bearbeitung ich ganz normal mit speichern abschließe, aber diese ist dann nicht zu sehen (auch nicht, wenn ich von "Tabellen" auf "Abfragen" oder "Formulare" und dann wieder zurück auch "Tabellen" gehe. Lediglich Deine Abfrage "Abfrage_VIEW_DEFINITIONS" zeigt sie sofort an. Erst wenn ich die Datenbank schließe und wieder öffne, sehe ich die neuen Views auch in der Tabellenansicht.
Dazu habe ich 2 Fragen:
1. Warum kann ich Deine 'Abfrage1' nicht in der oben beschriebenen Art kopieren?
2. Warum sehe ich die neuen Views erst nach einem Restart?
Viele Grüße
BBMonster

Antworten