[FOSSGIS-Talk] FOSSGIS-Talk-Liste Nachrichtensammlung, Band 98, Eintrag 19

R. Reiterer r.reiterer at posteo.at
Di Mär 21 13:36:59 CET 2017


Hallo Eckart,

der Feldrechner ist etwas anderes als virtuelle Layer:

http://qgis.org/en/site/forusers/visualchangelog214/#feature-virtual-layers

Du musst nur in der Layerverwaltungswerkzeugleiste auf das Icon für 
virtuelle Layer klicken, die SQL Anweisung reinkopieren, 'meinlayer' und 
'meinbezugsfeld' durch den jeweiligen Layer- bzw. Feldnamen ersetzen und 
mit'Okay' bestätigen.

PS: Anstelle von Leerzeichen würde ich einen Unterstrich (_) verwenden: 
flaeche_nr

Schöne Grüße,

Reinhard

Am 21.03.2017 11:27 schrieb Eckhard Schmidt:
> Hallo Reinhard,
> 
> vielen Dank für deinen Tipp.
> 
> Ich komme allerdings leider noch nicht ganz damit klar. Ich habe,
> nachdem ich ein Integer-Feld ("flaeche nr") angelegt habe, den
> Feldrechner geöffnet, im Pulldownmenü das Ziel-Feld ("flaeche nr")
> gewählt, die Checkbox "Vorhandenes Feld erneuern" aktiviert und "Neues
> Feld anlegen" deaktiviert - und dann die von dir angegebene
> Befehlsfolge
> 
> SELECT rowid AS "flaechen_id" /*:int*/, * FROM "meinlayer" ORDER BY
> "meinbezugsfeld" ASC;
> 
> folgendermaßen in das Ausdrucks-Eingabefeld eingegeben:
> 
> SELECT rowid AS "flaeche nr" /*:int*/, * FROM "Abbauflaechen_Kopie"
> ORDER BY  "X_Y" ASC;
> 
> "flaeche nr" ist, wie gesagt, das neu angelegte Integer-Feld, das die
> Flächennummerierung enthalten soll; "Abbauflaechen_Kopie" ist der
> Layer, in dem sich alles abspielt (ist selektiert und befindet sich im
> Editiermodus).
> 
> "X_Y" ist das Bezugsfeld, an dem sich die Nummerierungs-Reihenfolge
> orientieren soll, d.h., der Datensatz (Zeile) mit dem niedrigsten Wert
> in "X_Y" soll in "flaeche nr" eine "1" bekommen, der Datensatz mit dem
> höchsten Wet in "X_Y" die höchste Ziffer in "flaeche nr".
> 
> Nun meldet mir der Feldrechner :
> 
> "Ausdruck ist ungültig
> Parsingfehler: syntax error, unexpected COLUMN_REF, expecting $end
> Auswertungsfehler: Kein Wurzelknoten! Parsen gescheitert?"
> 
> Mit der Meldung bin ich leider überfordert ("Parsing" und
> "Wurzelknoten" sind mir keine Begriffe).
> 
> Ist evtl. an den gewählten Feldnamen etwas nicht ok? (verbotene /
> missverständlich Zeichen etc.?).
> 
> Wie kann ich weiter vorgehen? - Oder habe ich irgend etwas völlig
> falsch aufgefasst? (was ich nicht ganz ausschließen möchte).
> 
> Nochmals vielen Dank im Voraus
> und Grüße nach Österreich,
> Eckhard
> 
> 
> 
> 
> 
> Am 20.03.2017 um 12:00 schrieb fossgis-talk-liste-request at fossgis.de:
>> Hallo Eckart,
>> 
>> die Sortierung der Attributtabelle dient - wie du schon festgestellt
>> hast - nur zur Anzeige. Eine Änderung der Datenstruktur ist hier nicht
>> erwünscht. Die Neusortierung der Daten könntest du über einen 
>> virtuellen
>> Layer vornehmen:
>> 
>> SELECT
>> 	rowid AS "flaechen_id" /*:int*/,
>> 	*
>> FROM "meinlayer"
>> ORDER BY "meinbezugsfeld" ASC;
>> 
>> Mittels Rechtsklick kannst du den virutellen Layer - wie jeden anderen
>> Layer - in einem neuen Format speichern.
>> 
>> Bei Layer- und Feldnamen würde ich übrigens von Großbuchstaben,
>> Sonderzeichen, Umlauten und Bindestrichen (könnten als Minuszeichen
>> interpretiert werden) absehen.
>> 
>> Schöne Grüße,
>> 
>> Reinhard
>> 


Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste