Syntaxproblem mit Select und Bedingung
Hallo zusammen,
ich habe in einer Tabelle „QUARTAL“ u.a. die Felder „Anzahl“ und „Zeit“.
In der Tabelle „PROTOKOLL“ gibt es u.a. die Felder „Datum“ und „Dauer“
in der Variable „yqt“ steht ein ausgewähltes Quartal.
Mit
Anzahl := count((select PROTOKOLL)[yearquarter(Datum) = yqt])
bekomme ich die richtige Anzahl der Datensätze zusammen.
Mein Wunsch ist es, in QUARTAL auch die Dauer aller Datensätze eines Quartals aus der Tabelle PROTOKOLL zu summieren.
Mein Ansatz
Zeit := sum((select PROTOKOLL)[Dauer] where (PROTOKOLL)[yearquarter(Datum) = yqt]))
(und mehrere andere) scheitert leider an der Syntaxprüfung.
Hat jemand eine Idee, wo mein Fehler liegt?
2 Antworten
-
Moin Ronni Selpien ,
probier es mal hiermit (ungetestet, nur Syntax plausibel gemacht):Zeit := sum((select PROTOKOLL)[yearquarter(Datum) = yqt)].Dauer)
Beim select brauchst du nur einmal die Tabelle PROTOKOLL anzugeben, danach kommt die Bedingung in eckigen Klammern und danach mit einem Punkt, das Feld, das du summieren willst.
Es geht nur where ODER eckige Klammern. Bei where wird die Abfrage auf dem Server ausgeführt und nur das Ergebnis geholt (weniger Datenverkehr, dauert etwas länger), bei den eckigen Klammern werden die Daten vom Server geholt und dann erst die Bedingung geprüft (mehr Datenverkehr, Ergebnis geht aber etwas schneller als where). Das ist bei vielen Datensätzen relevant und auch ob du das Feld Zeit in der normalen Tabellenansicht anzeigst.
Da können Formelfelder mit select-Abfragen das Laden/Anzeigen der Tabelle deutllich verlangsamen.
VG Ronald
Content aside
- Status Answered
- vor 1 JahrZuletzt aktiv
- 2Antworten
- 52Ansichten
-
2
Folge bereits