0

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

null
    • + Maßanzug statt Massenware +
    • RonaldP
    • vor 1 Jahr
    • Gemeldet - anzeigen

    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

      • Ronni_Selpien
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Hallo DIGITOOL ,

      vielen Dank für Deine schnelle und erklärende Hilfe!

      Kaum macht man es richtig - schon geht's...

      Du hast mir sehr geholfen!

      Ronni