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]
