Ich antworte mir einmal selbst:
> 
> ich habe folgende Abfrage konstruiert:
> SELECT
> CASEWHEN( "Konto"."mitID" > - 1, "Mitglied"."Nachname" || ', ' ||
> "Mitglied"."Vorname", "Konto"."Nachname" || ', ' || "Konto"."Vorname" ) ||
> ' (Kontoinhaber) ' || 'Konto:' || "Konto"."Konto" || ' BLZ:' ||
> "Bank"."BLZ" || ', ' || "Bank"."Bank" AS "Anzeige",
> "Konto"."ID",
> COUNT( "Mitglied_aktuell_Ansicht"."ID" ) AS "Gruppengroesse"
> FROM "Konto" LEFT JOIN "Bank" ON "Konto"."banID" = "Bank"."ID"
> LEFT JOIN "Mitglied" ON "Konto"."mitID" = "Mitglied"."ID", "Gruppe",
> "Mitglied_aktuell_Ansicht"
> WHERE "Konto"."ID" = "Gruppe"."konID" AND "Gruppe"."ID" =
> "Mitglied_aktuell_Ansicht"."gruID"
> GROUP BY "Anzeige", "Konto"."ID" ORDER BY "Anzeige" ASC
> 
> 3 Felder also, die mir in der Abfrage auch angezeigt werden (wobei mich
> gewundert hat, dass neben der GROUP BY-Klausel auch noch eine Sortierung
> nach dem gleichen Feld möglich war).
> Nehme ich die Abfrage direkt und suche mir z.B. eine Gruppengröße 2 aus und
> lasse Filtern, so erhalte ich alle Datensätze mit der Gruppengröße 2.
> Gehe ich ins Formular, so ist dort die Filterung zwar nach der "Anzeige"
> möglich. Die Eingabe innerhalb der Filterauswahl wird bei der
> "Gruppengroesse" schlicht ignoriert. Nehme ich stattdessen den Wert direkt
> über Filter plus Zauberstab, so wird mir mitgeteilt, dass die Filterung
> nicht möglich ist.

Ich habe das jetzt durchgetestet, bis es schließlich zu einer 
Filtermöglichkeit führte. Obige Abfrage ging nur in der Tabellenansicht nach 
der Gruppengroesse zu filtern, nicht im Formular. Nachdem ich die 
Filterkriterien direkt in die Abfrage geschrieben habe stelle ich fest, dass 
das aufgrund von SQL-Einschränkungen nicht funktionieren kann. Wie das die 
Tabellenansicht dennoch schafft blieb mir verborgen.
2. Weg: Der Zähl-Befehl wurde als Select in die FROM-Bedingung eingefügt. Base 
schickt ähnliche Befehle an die HSQLDB, wenn sich die Abfrage neben einer 
Tabelle auch auf eine vorhergehende Abfrage bezieht. Jetzt ging die Eingabe 
eines SQL-Befehls zur Filterung in der Abfrage, aber die Filterung klappte 
werder im Formular noch in der Tabelle. Also eigentlich richtig, aber nur 
falsch umgesetzt: Die Filter in Tabelle und Formular machten daraus einen 
Befehl ohne Bezug zu einem Tabellenfeld, hier also nicht "Gruppengroesse > 1" 
sondern einfach nur " > 1". Mir völlig verständlich, dass HSQLDB darauf keine 
Antwort wusste.
3. Weg, der schließlich in Tabelle und Formular funktioniert: Die Zählung in 
einer separaten Abfrage abspeichern. Das Resultat ist (auch von der 
Codezusammenstellung) gleich dem im 2. Weg. Nur lässt jetzt sowohl das 
Formular als auch die Tabelle eine Filterung zu.

Zumindest in der Version 3.1.1 scheint mir da irgendwo bei den Filterkriterien 
einiges nicht wie gewünscht zu laufen. Da die 3.2 aber in der Beziehung ganz 
andere Probleme hat kann ich nicht sagen, ob die 3.2 solche Konstruktionen 
SQL-konformer löst. Ich warte einfach einmal die 3.2.1 ab und gebe dann 
gegebenenfalls einen Issue auf.

Gruß

Robert

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an