GLE-Postgis-Wege- und Routennetz Views: Unterschied zwischen den Versionen

Aus kvwmap
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „'''Views Kategorien Rad''' CREATE OR REPLACE VIEW wegenetz_b.kategorien_rad_1_3_4 AS ( SELECT wegabschnitte.oid, 'rad'::text AS art, 'Kateg…“)
 
Zeile 1: Zeile 1:
 +
 +
Grundlage für die Views sind die [[GLE-Postgis-Wege-_und_Routennetz_Matrix|Matritzen des Ausbauzustands und der Beurteilungskriterien]].
 +
 +
 
'''Views Kategorien Rad'''
 
'''Views Kategorien Rad'''
  

Version vom 6. Januar 2016, 14:51 Uhr

Grundlage für die Views sind die Matritzen des Ausbauzustands und der Beurteilungskriterien.


Views Kategorien Rad

CREATE OR REPLACE VIEW wegenetz_b.kategorien_rad_1_3_4 AS 
        (         SELECT wegabschnitte.oid, 'rad'::text AS art, 'Kategorie 1'::text AS kategorie, wegabschnitte.wid, 'keine Einschränkung'::text AS grund, wegabschnitte.the_geom
                   FROM wegenetz_b.wegabschnitte_alt wegabschnitte
                  WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_rad = false AND wegabschnitte.wegbreite >= 2.5 AND (wegabschnitte.wid IN ( SELECT zustand_rad.wid
                           FROM wegenetz_b.zustand_rad
                          WHERE zustand_rad.zustand_rad = '1'::text)) AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT gefahrenstellen.wid
                           FROM wegenetz_b.gefahrenstellen
                          WHERE gefahrenstellen.art::text <> 'Poller'::text)) AND (wegabschnitte.kfzverkehr::text = 'Selbständiger Weg'::text OR wegabschnitte.kfzverkehr::text = 'Straßenbegleitender Weg'::text) AND wegabschnitte.wohlbefinden::text = 'keine Beeinträchtigung'::text AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
                           FROM wegenetz_b.weg2strassenquerung
                          WHERE weg2strassenquerung.querungsart::text = 'ungesicherte Querung'::text))
        UNION 
                 SELECT wegabschnitte.oid, 'rad'::text AS art, 'Kategorie 4'::text AS kategorie, wegabschnitte.wid, 'Radfahrverbot'::text AS grund, wegabschnitte.the_geom
                   FROM wegenetz_b.wegabschnitte_alt wegabschnitte
                  WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_rad = true)
UNION 
         SELECT wegabschnitte.oid, 'rad'::text AS art, 'Kategorie 3'::text AS kategorie, wegabschnitte.wid, rtrim(((
                CASE
                    WHEN wegabschnitte.wegbreite < 2::numeric AND wegabschnitte.wegbreite > 0::numeric THEN 'Wegbreite < 2 m, '::text
                    ELSE ::text
                END || 
                CASE
                    WHEN wegabschnitte.wegbreite IS NULL THEN 'Wegbreite unbekannt, '::text
                    ELSE ::text
                END) || 
                CASE
                    WHEN (wegabschnitte.wid IN ( SELECT zustand_rad.wid
                       FROM wegenetz_b.zustand_rad
                      WHERE zustand_rad.zustand_rad = '3'::text)) THEN 'ungeeignete Ausbauart oder Mangel/Gefahrenstelle, '::text
                    ELSE ::text
                END) || 
                CASE
                    WHEN (wegabschnitte.wid IN ( SELECT zustand_rad.wid
                       FROM wegenetz_b.zustand_rad
                      WHERE zustand_rad.zustand_rad = 'unbekannt'::text)) THEN 'Ausbauart unbekannt'::text
                    ELSE ::text
                END, ', '::text) AS grund, wegabschnitte.the_geom
           FROM wegenetz_b.wegabschnitte_alt wegabschnitte
          WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_rad = false AND (wegabschnitte.wegbreite < 2::numeric OR wegabschnitte.wegbreite IS NULL OR (wegabschnitte.wid IN ( SELECT zustand_rad.wid
                   FROM wegenetz_b.zustand_rad
                  WHERE zustand_rad.zustand_rad = '3'::text OR zustand_rad.zustand_rad = 'unbekannt'::text)));

CREATE OR REPLACE VIEW wegenetz_b.kategorien_rad_2 AS 
 SELECT wegabschnitte.oid, 'rad'::text AS art, 'Kategorie 2'::text AS kategorie, wegabschnitte.wid, rtrim((((
        CASE
            WHEN wegabschnitte.wegbreite >= 2::numeric AND wegabschnitte.wegbreite < 2.5 THEN 'Wegbreite >= 2 m und < 2,5 m, '::text
            ELSE ::text
        END || 
        CASE
            WHEN (wegabschnitte.wid IN ( SELECT zustand_rad.wid
               FROM wegenetz_b.zustand_rad
              WHERE zustand_rad.zustand_rad = '2'::text)) THEN 'ausreichende Ausbauart oder Mangel/Gefahrenstelle, '::text
            ELSE ::text
        END) || 
        CASE
            WHEN wegabschnitte.kfzverkehr::text <> 'Selbständiger Weg'::text AND wegabschnitte.kfzverkehr::text <> 'Straßenbegleitender Weg'::text THEN 'nicht selbständig geführter oder straßenbegleitender Weg, '::text
            ELSE ::text
        END) || 
        CASE
            WHEN wegabschnitte.wohlbefinden::text <> 'keine Beeinträchtigung'::text THEN 'Beeinträchtigung des Wohlbefindens, '::text
            ELSE ::text
        END) || 
        CASE
            WHEN (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
               FROM wegenetz_b.weg2strassenquerung
              WHERE weg2strassenquerung.querungsart::text = 'ungesicherte Querung'::text)) THEN 'ungesicherte Straßenquerung'::text
            ELSE ::text
        END, ', '::text) AS grund, wegabschnitte.the_geom
   FROM wegenetz_b.wegabschnitte_alt wegabschnitte
  WHERE wegabschnitte.status::text = 'vorhanden'::text AND NOT (wegabschnitte.wid IN ( SELECT kategorien_rad_1_3_4.wid
           FROM wegenetz_b.kategorien_rad_1_3_4));

CREATE OR REPLACE VIEW wegenetz_b.kategorien_rad_alle AS 
         SELECT kategorien_rad_1_3_4.oid, kategorien_rad_1_3_4.art, kategorien_rad_1_3_4.kategorie, kategorien_rad_1_3_4.wid, kategorien_rad_1_3_4.grund, kategorien_rad_1_3_4.the_geom
           FROM wegenetz_b.kategorien_rad_1_3_4
UNION 
         SELECT kategorien_rad_2.oid, kategorien_rad_2.art, kategorien_rad_2.kategorie, kategorien_rad_2.wid, kategorien_rad_2.grund, kategorien_rad_2.the_geom
           FROM wegenetz_b.kategorien_rad_2;

Views Kategorien Reiten

CREATE OR REPLACE VIEW wegenetz_b.kategorien_reiten_1_3_4 AS 
        (         SELECT wegabschnitte.oid, 'reiten'::text AS art, 'Kategorie 1'::text AS kategorie, wegabschnitte.wid, 'keine Einschränkung'::text AS grund, wegabschnitte.the_geom
                   FROM wegenetz_b.wegabschnitte_alt wegabschnitte
                  WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_reiten = false AND wegabschnitte.wegbreite >= 2.5 AND (wegabschnitte.wid IN ( SELECT zustand_reiten.wid
                           FROM wegenetz_b.zustand_reiten
                          WHERE zustand_reiten.zustand_reiten = '1'::text)) AND (wegabschnitte.kfzverkehr::text = 'Selbständiger Weg'::text OR wegabschnitte.kfzverkehr::text = 'Straßenbegleitender Weg'::text) AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT gefahrenstellen.wid
                           FROM wegenetz_b.gefahrenstellen)) AND wegabschnitte.wohlbefinden::text = 'keine Beeinträchtigung'::text AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
                           FROM wegenetz_b.weg2strassenquerung))
        UNION 
                 SELECT wegabschnitte.oid, 'reiten'::text AS art, 'Kategorie 4'::text AS kategorie, wegabschnitte.wid, 'Reitverbot'::text AS grund, wegabschnitte.the_geom
                   FROM wegenetz_b.wegabschnitte_alt wegabschnitte
                  WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_reiten = true)
UNION 
         SELECT wegabschnitte.oid, 'reiten'::text AS art, 'Kategorie 3'::text AS kategorie, wegabschnitte.wid, rtrim(((((
                CASE
                    WHEN wegabschnitte.verbot_reiten = true THEN 'Verbot Reiten, '::text
                    ELSE ::text
                END || 
                CASE
                    WHEN wegabschnitte.wegbreite < 1::numeric AND wegabschnitte.wegbreite > 1::numeric THEN 'Wegbreite < 1 m, '::text
                    ELSE ::text
                END) || 
                CASE
                    WHEN wegabschnitte.wegbreite IS NULL THEN 'Wegbreite unbekannt, '::text
                    ELSE ::text
                END) || 
                CASE
                    WHEN (wegabschnitte.wid IN ( SELECT zustand_reiten.wid
                       FROM wegenetz_b.zustand_reiten
                      WHERE zustand_reiten.zustand_reiten = '3'::text)) THEN 'ungeeignete Ausbauart oder Mangel/Gefahrenstelle, '::text
                    ELSE ::text
                END) || 
                CASE
                    WHEN (wegabschnitte.wid IN ( SELECT zustand_reiten.wid
                       FROM wegenetz_b.zustand_reiten
                      WHERE zustand_reiten.zustand_reiten = 'unbekannt'::text)) THEN 'Ausbauart unbekannt, '::text
                    ELSE ::text
                END) || 
                CASE
                    WHEN wegabschnitte.kfzverkehr IS NULL OR wegabschnitte.kfzverkehr::text = ::text THEN 'KFZ-Verkehr unbekannt'::text
                    ELSE ::text
                END, ', '::text) AS grund, wegabschnitte.the_geom
           FROM wegenetz_b.wegabschnitte_alt wegabschnitte
          WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_reiten = false AND (wegabschnitte.wegbreite < 1::numeric OR wegabschnitte.wegbreite IS NULL OR (wegabschnitte.wid IN ( SELECT zustand_reiten.wid
                   FROM wegenetz_b.zustand_reiten
                  WHERE zustand_reiten.zustand_reiten = '3'::text OR zustand_reiten.zustand_reiten = 'unbekannt'::text)) OR wegabschnitte.kfzverkehr IS NULL OR wegabschnitte.kfzverkehr::text = ::text);

CREATE OR REPLACE VIEW wegenetz_b.kategorien_reiten_2 AS 
 SELECT wegabschnitte.oid, 'reiten'::text AS art, 'Kategorie 2'::text AS kategorie, wegabschnitte.wid, rtrim((((
        CASE
            WHEN wegabschnitte.wegbreite >= 1::numeric AND wegabschnitte.wegbreite < 2.5 THEN 'Wegbreite >= 1 m und < 2.5 m, '::text
            ELSE ::text
        END || 
        CASE
            WHEN (wegabschnitte.wid IN ( SELECT zustand_rad.wid
               FROM wegenetz_b.zustand_rad
              WHERE zustand_rad.zustand_rad = '2'::text)) THEN 'ausreichende Ausbauart oder Mangel/Gefahrenstelle, '::text
            ELSE ::text
        END) || 
        CASE
            WHEN wegabschnitte.kfzverkehr::text <> 'Selbständiger Weg'::text AND wegabschnitte.kfzverkehr::text <> 'Straßenbegleitender Weg'::text THEN 'nicht selbständig geführter oder straßenbegleitender Weg, '::text
            ELSE ::text
        END) || 
        CASE
            WHEN wegabschnitte.wohlbefinden::text <> 'keine Beeinträchtigung'::text THEN 'Beeinträchtigung des Wohlbefindens, '::text
            ELSE ::text
        END) || 
        CASE
            WHEN (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
               FROM wegenetz_b.weg2strassenquerung)) THEN 'ungesicherte Straßenquerung, '::text
            ELSE ::text
        END, ', '::text) AS grund, wegabschnitte.the_geom
   FROM wegenetz_b.wegabschnitte_alt wegabschnitte
  WHERE wegabschnitte.status::text = 'vorhanden'::text AND NOT (wegabschnitte.wid IN ( SELECT kategorien_reiten_1_3_4.wid
           FROM wegenetz_b.kategorien_reiten_1_3_4));

CREATE OR REPLACE VIEW wegenetz_b.kategorien_reiten_alle AS 
         SELECT kategorien_reiten_1_3_4.oid, kategorien_reiten_1_3_4.art, kategorien_reiten_1_3_4.kategorie, kategorien_reiten_1_3_4.wid, kategorien_reiten_1_3_4.grund, kategorien_reiten_1_3_4.the_geom
           FROM wegenetz_b.kategorien_reiten_1_3_4
UNION 
         SELECT kategorien_reiten_2.oid, kategorien_reiten_2.art, kategorien_reiten_2.kategorie, kategorien_reiten_2.wid, kategorien_reiten_2.grund, kategorien_reiten_2.the_geom
           FROM wegenetz_b.kategorien_reiten_2;

Views Kategorien Wandern

CREATE OR REPLACE VIEW wegenetz_b.kategorien_wandern_1_3_4 AS 
        (         SELECT wegabschnitte.oid, 'wandern'::text AS art, 'Kategorie 1'::text AS kategorie, wegabschnitte.wid, 'keine Einschränkung'::text AS grund, wegabschnitte.the_geom
                   FROM wegenetz_b.wegabschnitte_alt wegabschnitte
                  WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_wandern = false AND wegabschnitte.wegbreite IS NOT NULL AND (wegabschnitte.wid IN ( SELECT zustand_wandern.wid
                           FROM wegenetz_b.zustand_wandern
                          WHERE zustand_wandern.zustand_wandern = '1'::text)) AND wegabschnitte.kfzverkehr::text = 'Selbständiger Weg'::text AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT gefahrenstellen.wid
                           FROM wegenetz_b.gefahrenstellen)) AND wegabschnitte.wohlbefinden::text = 'keine Beeinträchtigung'::text AND NOT (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
                           FROM wegenetz_b.weg2strassenquerung
                          WHERE weg2strassenquerung.querungsart::text = 'ungesicherte Querung'::text))
        UNION 
                 SELECT wegabschnitte.oid, 'wandern'::text AS art, 'Kategorie 4'::text AS kategorie, wegabschnitte.wid, 'Verbot Fußgänger'::text AS grund, wegabschnitte.the_geom
                   FROM wegenetz_b.wegabschnitte_alt wegabschnitte
                  WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_wandern = true)
UNION 
         SELECT wegabschnitte.oid, 'wandern'::text AS art, 'Kategorie 3'::text AS kategorie, wegabschnitte.wid, rtrim(((
                CASE
                    WHEN wegabschnitte.verbot_wandern = true THEN 'Verbot Wandern, '::text
                    ELSE ::text
                END || 
                CASE
                    WHEN wegabschnitte.wegbreite IS NULL THEN 'Wegbreite unbekannt, '::text
                    ELSE ::text
                END) || 
                CASE
                    WHEN (wegabschnitte.wid IN ( SELECT zustand_wandern.wid
                       FROM wegenetz_b.zustand_wandern
                      WHERE zustand_wandern.zustand_wandern = '3'::text)) THEN 'ungeeignete Ausbauart oder Mangel/Gefahrenstelle'::text
                    ELSE ::text
                END) || 
                CASE
                    WHEN (wegabschnitte.wid IN ( SELECT zustand_wandern.wid
                       FROM wegenetz_b.zustand_wandern
                      WHERE zustand_wandern.zustand_wandern = 'unbekannt'::text)) THEN 'Ausbauart unbekannt'::text
                    ELSE ::text
                END, ', '::text) AS grund, wegabschnitte.the_geom
           FROM wegenetz_b.wegabschnitte_alt wegabschnitte
          WHERE wegabschnitte.status::text = 'vorhanden'::text AND wegabschnitte.verbot_wandern = false AND (wegabschnitte.wegbreite IS NULL OR (wegabschnitte.wid IN ( SELECT zustand_wandern.wid
                   FROM wegenetz_b.zustand_wandern
                  WHERE zustand_wandern.zustand_wandern = '3'::text OR zustand_wandern.zustand_wandern = 'unbekannt'::text)));

CREATE OR REPLACE VIEW wegenetz_b.kategorien_wandern_2 AS 
 SELECT wegabschnitte.oid, 'wandern'::text AS art, 'Kategorie 2'::text AS kategorie, wegabschnitte.wid, rtrim(((
        CASE
            WHEN (wegabschnitte.wid IN ( SELECT zustand_wandern.wid
               FROM wegenetz_b.zustand_wandern
              WHERE zustand_wandern.zustand_wandern = '2'::text)) THEN 'ausreichende Ausbauart oder Mangel/Gefahrenstelle, '::text
            ELSE ::text
        END || 
        CASE
            WHEN wegabschnitte.kfzverkehr::text <> 'Selbständiger Weg'::text THEN 'nicht selbständig geführter Weg, '::text
            ELSE ::text
        END) || 
        CASE
            WHEN wegabschnitte.wohlbefinden::text <> 'keine Beeinträchtigung'::text THEN 'Beeinträchtigung des Wohlbefindens, '::text
            ELSE ::text
        END) || 
        CASE
            WHEN (wegabschnitte.wid IN ( SELECT DISTINCT weg2strassenquerung.wid
               FROM wegenetz_b.weg2strassenquerung
              WHERE weg2strassenquerung.querungsart::text = 'ungesicherte Querung'::text)) THEN 'ungesicherte Straßenquerung'::text
            ELSE ::text
        END, ', '::text) AS grund, wegabschnitte.the_geom
   FROM wegenetz_b.wegabschnitte_alt wegabschnitte
  WHERE wegabschnitte.status::text = 'vorhanden'::text AND NOT (wegabschnitte.wid IN ( SELECT kategorien_wandern_1_3_4.wid
           FROM wegenetz_b.kategorien_wandern_1_3_4));

CREATE OR REPLACE VIEW wegenetz_b.kategorien_wandern_alle AS 
         SELECT kategorien_wandern_1_3_4.oid, kategorien_wandern_1_3_4.art, kategorien_wandern_1_3_4.kategorie, kategorien_wandern_1_3_4.wid, kategorien_wandern_1_3_4.grund, kategorien_wandern_1_3_4.the_geom
           FROM wegenetz_b.kategorien_wandern_1_3_4
UNION 
         SELECT kategorien_wandern_2.oid, kategorien_wandern_2.art, kategorien_wandern_2.kategorie, kategorien_wandern_2.wid, kategorien_wandern_2.grund, kategorien_wandern_2.the_geom
           FROM wegenetz_b.kategorien_wandern_2;

Views Zustand

CREATE OR REPLACE VIEW wegenetz_b.zustand_rad AS 
 SELECT wegabschnitte.wid, 
        CASE
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['Asphalt'::character varying::text, 'Betonoberfläche'::character varying::text, 'Betonspurbahn'::character varying::text, 'Betonspurplatten'::character varying::text, 'Kunststeinpflaster'::character varying::text, 'wassergebundene Decke'::character varying::text]) THEN 
            CASE
                WHEN NOT (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['Querrillen'::text, 'saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text, 'Umlaufschranken'::text]))) THEN '1'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['Querrillen'::text, 'Umlaufschranken'::text]))) THEN '2'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text]))) THEN '3'::text
                ELSE NULL::text
            END
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['Schotterweg'::character varying::text, 'Sand-/Kiesweg'::character varying::text, 'Waldweg'::character varying::text]) THEN 
            CASE
                WHEN NOT (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text]))) THEN '2'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text]))) THEN '3'::text
                ELSE NULL::text
            END
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['Kopfsteinpflaster'::character varying::text, 'naturbelassener Weg'::character varying::text]) THEN '3'::text
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['befestigt'::character varying::text, 'versiegelt'::character varying::text, 'unbefestigt'::character varying::text, 'unbekannt'::character varying::text]) THEN 'unbekannt'::text
            ELSE NULL::text
        END AS zustand_rad
   FROM wegenetz_b.wegabschnitte_alt wegabschnitte;

CREATE OR REPLACE VIEW wegenetz_b.zustand_reiten AS 
 SELECT wegabschnitte.wid, 
        CASE
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['wassergebundene Decke'::character varying::text, 'Sand-/Kiesweg'::character varying::text, 'Waldweg'::character varying::text, 'naturbelassener Weg'::character varying::text]) THEN 
            CASE
                WHEN NOT (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['Querrillen'::text, 'saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text, 'Umlaufschranken'::text]))) THEN '1'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['Querrillen'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text, 'Umlaufschranken'::text]))) THEN '2'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = 'saisonal unbefahrbar'::text)) THEN '2'::text
                ELSE NULL::text
            END
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['Asphalt'::character varying::text, 'Betonoberfläche'::character varying::text, 'Betonspurbahn'::character varying::text, 'Betonspurplatten'::character varying::text, 'Kunststeinpflaster'::character varying::text, 'Schotterweg'::character varying::text, 'Kopfsteinpflaster'::character varying::text]) THEN '3'::text
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['befestigt'::character varying::text, 'versiegelt'::character varying::text, 'unbefestigt'::character varying::text, 'unbekannt'::character varying::text]) THEN 'unbekannt'::text
            ELSE NULL::text
        END AS zustand_reiten
   FROM wegenetz_b.wegabschnitte_alt wegabschnitte;

CREATE OR REPLACE VIEW wegenetz_b.zustand_wandern AS 
 SELECT wegabschnitte.wid, 
        CASE
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['wassergebundene Decke'::character varying::text, 'Schotterweg'::character varying::text, 'Sand-/Kiesweg'::character varying::text, 'Waldweg'::character varying::text, 'naturbelassener Weg'::character varying::text]) THEN 
            CASE
                WHEN NOT (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text, 'Umlaufschranken'::text]))) THEN '1'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = ANY (ARRAY['saisonal unbefahrbar'::text, 'starke Unebenheiten / Löcher'::text, 'starkes Gefälle / Steigung'::text, 'Stufen / Treppen'::text, 'Umlaufschranken'::text]))) THEN '2'::text
                ELSE NULL::text
            END
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['Asphalt'::character varying::text, 'Betonoberfläche'::character varying::text, 'Betonspurbahn'::character varying::text, 'Betonspurplatten'::character varying::text, 'Kunststeinpflaster'::character varying::text]) THEN 
            CASE
                WHEN NOT (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = 'saisonal unbefahrbar'::text)) THEN '2'::text
                WHEN (wegabschnitte.wid IN ( SELECT gefahrenstellen.wid
                   FROM wegenetz_b.gefahrenstellen
                  WHERE gefahrenstellen.art::text = 'saisonal unbefahrbar'::text)) THEN '3'::text
                ELSE NULL::text
            END
            WHEN wegabschnitte.ausbauart::text = 'Kopfsteinpflaster'::character varying::text THEN '3'::text
            WHEN wegabschnitte.ausbauart::text = ANY (ARRAY['befestigt'::character varying::text, 'versiegelt'::character varying::text, 'unbefestigt'::character varying::text, 'unbekannt'::character varying::text]) THEN 'unbekannt'::text
            ELSE NULL::text
        END AS zustand_wandern
   FROM wegenetz_b.wegabschnitte_alt wegabschnitte;