[FOSSGIS-Talk] QGIS - filtern nach doppelten Werten in einer Spalte

sk webentry at web.de
Mi Jun 24 07:49:12 CEST 2015


Morgen Jürgen und alle mitlesenden,

bin erst heute dazu gekommen mich wieder mit diesem Thema zu beschäftigen.
Habe Deine Abfrage mal so eingegeben, es kommt dann aber eine 
Fehlermeldung die lautet:

"Abfrage fehlgeschlagen
Ein Fehler trat beim Ausführen der Abfrage auf. Der Datenanbieter meldet:
FEHLER: Syntaxfehler bei >>FROM<<
LINE 1: ...public","tabelle"WHERE NOT EXISTS (SELECT FROM Layername...
                                                   ^
"
Der Datenbanktabellenname ist anders als der Layername in QGIS, aber das 
sollte doch wohl egal sein.
Ich frage nur, da in der Fehlermeldung nach 'NOT EXISTS' der Layername 
auftaucht?
Ich habe dann auch den Layernamen anstelle des Tabellennamens 
eingetragen, ändert an der Fehlermeldung
aber nichts.

Gruß Peter


Am 17.06.2015 um 14:36 schrieb Jürgen E. Fischer:
> Moin Peter,
>
> On Wed, 17. Jun 2015 at 13:44:47 +0200, sk wrote:
>> das Ergebnis mit einer Abfrage für den Atlasdruck zu verbinden. Kann ich
>> diese SQL Abfrage in den Funktionen für die Druckeinrichtung integrieren?
> Du könntest einen Filter setzen (Eintrag "Filter..." im Kontextmenüeintrag des
> Layers) - der wird nämlich als (Teile des) Where-Clause an PostgreSQL
> durchgereicht.
>
> Angenommen die Tabelle heißt "tabelle".  Das "doppelte" Attribute heißt "id"
> und der Primärschlüssel von "tabelle" ist "pk":
>
> NOT EXISTS (SELECT FROM tabelle b WHERE tabelle.id=b.id AND tabelle.pk>b.pk)
>
> Dann hättest Du im Layer nur noch die Einträge aus "tabelle" zu denen es keinen
> Eintrag in "tabelle" gibt, der den gleichen id aber einen höheren
> Primärschlüssel hat.  Mit anderen Worten zu jedem ID den mit den kleinsten pk.
>
>
> Jürgen
>