BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗
komplexe berechnete Felderin Abfragen
Re: komplexe berechnete Felderin Abfragen
Schau dir mal das Bild an:Day Gruß R
Führe die Abfrage im direkten SQL-Mode aus und entferne die Quotes um das Wort Windows 10: AOO, LO Linux Mint: AOO, LO
Re: komplexe berechnete Felderin Abfragen
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
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
Re: komplexe berechnete Felderin Abfragen
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
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) 284-mal heruntergeladen
-
- BBVD.png (7.61 KiB) 9260 mal betrachtet
Windows 10: AOO, LO Linux Mint: AOO, LO
Gelöst komplexe berechnete Felderin Abfragen
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
das sieht jetzt wirklich gut aus und ich werde nun versuchen, meine Scratchtabelle zu eliminieren.
Vielen Dank für Deine Hilfe
Gruß
BBMonster
Re: komplexe berechnete Felderin Abfragen
Na, wäre doch schick! Meldest du dich nochmal, wenn es geklappt hat?
Gruß R
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: komplexe berechnete Felderin Abfragen
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
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
Re: komplexe berechnete Felderin Abfragen
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:
hier entspricht eben dem in der Listbox gewählten Zeitraum.
Gruß R
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"
Code: Alles auswählen
SELECT
"F_DAYS"
FROM
"tbl_filter"
Gruß R
- Dateianhänge
-
- BBMONSTER_GD.odb
- (79.15 KiB) 292-mal heruntergeladen
Windows 10: AOO, LO Linux Mint: AOO, LO
Re: komplexe berechnete Felderin Abfragen
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
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
Re: komplexe berechnete Felderin Abfragen
Hallo BBMonster,
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.
Gruß R
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.
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
Re: komplexe berechnete Felderin Abfragen
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
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