Menu

Hecken SQL

Gismo

Überführung alte Hecken zu neuen Hecken

Hecken, die in der alten LE-Struktur gespeichert sind (siehe Abschnitt „Die Datenbank“ - „Landschafts-Elemente“), können mtttels eines SQL-Skriptes in die neue Struktur überführt werden.

Dabei ist zu beachten:

Folgende Attribute können nicht übertragen werden, da sie im neuen Modell nicht mehr vorkommen:

  • Anteil einheimischer Gehölzarten
  • Anteil der Gehölzarten
  • Historischer Bedeutungsgehalt
  • Zustand
  • Status und Form der Neuanlage
  • Regionaltypik
  • Zugänglichkeit
  • Raumwirksamkeit
  • Gesetzlicher Objektschutz
  • Besitzverhältnis

Folgende Attribute existieren in beiden Modellen und könnten erhalten bleiben:
Jedoch steht in der ganzen DB für jede Hecke nur 'null' drin. Deshalb lasse ich diese Attribute beim Konvertieren aus.

  • Alter
  • Vorhandensein Wall
  • Vorhandensein Bäume
  • Jedoch ist eines dieser Attribute für keine Hecke im aktuellen Datenbestand ausgewählt, deshalb werden sie im Skript nicht übertragen.

SQL |
---------- |
INSERT INTO hedge_layer (geom, farm_id, sid, creation, archivation, length_value, width_value)
SELECT geom, bid, 0, creation, archivation, laenge, breite
FROM reale_objekte ro
-- Freies Attribut 1: Länge
FULL OUTER JOIN (SELECT roaf_frei1.oid as roaf_oid, roaf_frei1.wert as laenge
FROM reale_objekte ro_frei1
JOIN reale_objekt_attribute_frei roaf_frei1 ON (ro_frei1.oid = roaf_frei1.oid)
JOIN attributs_bereiche ab_frei1 ON (roaf_frei1.objekt_id = ab_frei1.objekt_id AND roaf_frei1.attribut_id = ab_frei1.attribut_id)
JOIN objekt_attribute oa_frei1 ON (ab_frei1.objekt_id = oa_frei1.objekt_id AND ab_frei1.attribut_id = oa_frei1.id)
JOIN objekte o_frei1 ON (oa_frei1.objekt_id = o_frei1.id)
WHERE oa_frei1.id = 2 -- 2 = Länge
) roaf1 ON (ro.oid = roaf1.roaf_oid)
-- Freies Attribut 2: Breite
FULL OUTER JOIN (SELECT roaf_frei1.oid as roaf_oid, roaf_frei1.wert as breite
FROM reale_objekte ro_frei1
JOIN reale_objekt_attribute_frei roaf_frei1 ON (ro_frei1.oid = roaf_frei1.oid)
JOIN attributs_bereiche ab_frei1 ON (roaf_frei1.objekt_id = ab_frei1.objekt_id AND roaf_frei1.attribut_id = ab_frei1.attribut_id)
JOIN objekt_attribute oa_frei1 ON (ab_frei1.objekt_id = oa_frei1.objekt_id AND ab_frei1.attribut_id = oa_frei1.id)
JOIN objekte o_frei1 ON (oa_frei1.objekt_id = o_frei1.id)
WHERE oa_frei1.id = 3 -- 3 = Breite
) roaf2 ON (ro.oid = roaf2.roaf_oid)
--
WHERE ro.oid IN (SELECT DISTINCT roo.oid -- Unteranfrage ermittelt alle (verschiednen) realen_objekte, die entweder durch freie oder feste Attribute zu Hecken (3) gehören
FROM reale_objekte roo
-- freie Attribute in Ackerschläge
FULL OUTER JOIN reale_objekt_attribute_frei roafo ON (roo.oid = roafo.oid)
FULL OUTER JOIN objekte oo ON (roafo.objekt_id = oo.id)
-- feste Attribute in Ackerschläge
FULL OUTER JOIN reale_objekt_attribute_fest roaffo ON (roo.oid = roaffo.oid)
FULL OUTER JOIN objekte ofo ON (roaffo.objekt_id = ofo.id)
WHERE oo.id = 1 OR ofo.id = 1) -- 1 = Hecke
AND ro.bid = 10
ORDER BY ro.oid


Related

Wiki: Inhalt

Auth0 Logo