chatdesk-ui/postgrest_v12.2.8/test/io/big_schema.sql

11391 lines
383 KiB
PL/PgSQL

/*
This is a 2018 version of the apflora schema https://github.com/barbalex/apf2/tree/master/sql/apflora - latest version likely has differing contents
We use it to test our metadata generation because it contains a good amount of db objects.
Custom roles and privileges where removed.
postgrest-with-postgresql-14 -f test/io/big_schema.sql psql
Has 12 functions:
select count(*) from information_schema.routines where specific_schema = 'apflora';
count
-------
12
Has 45 tables:
select count(*) from information_schema.tables where table_schema = 'apflora' and table_type = 'BASE TABLE';
count
-------
45
(1 row)
Has 281 views:
select count(*) from information_schema.views where table_schema = 'apflora';
count
-------
281
(1 row)
Has 45 pkcols where none of them is a composite primary key:
with pkcols as (
select kcu.table_schema,
kcu.table_name,
tco.constraint_name,
array_agg(kcu.column_name order by kcu.ordinal_position) as key_columns
from information_schema.table_constraints tco
join information_schema.key_column_usage kcu
on kcu.constraint_name = tco.constraint_name
and kcu.constraint_schema = tco.constraint_schema
and kcu.constraint_name = tco.constraint_name
where tco.constraint_type = 'PRIMARY KEY' and kcu.table_schema = 'apflora'
group by kcu.table_schema, kcu.table_name, tco.constraint_name
)
select count(*) from pkcols
where array_length(key_columns, 1) > 1;
count
-------
0
(1 row)
Has 50 foreign key relationships:
with fk_rel as (
select ns1.nspname as table_schema,
tab.relname as table_name,
ns2.nspname as foreign_table_schema,
other.relname as foreign_table_name,
conname as constraint_name,
column_info.cols as columns
from pg_constraint,
lateral (
select array_agg(row(cols.attname, refs.attname) order by cols.attnum) as cols
from ( select unnest(conkey) as col, unnest(confkey) as ref) k,
lateral (select * from pg_attribute where attrelid = conrelid and attnum = col) as cols,
lateral (select * from pg_attribute where attrelid = confrelid and attnum = ref) as refs) as column_info,
lateral (select * from pg_namespace where pg_namespace.oid = connamespace) as ns1,
lateral (select * from pg_class where pg_class.oid = conrelid) as tab,
lateral (select * from pg_class where pg_class.oid = confrelid) as other,
lateral (select * from pg_namespace where pg_namespace.oid = other.relnamespace) as ns2
where contype = 'f' and conparentid = 0
)
select count(*) from fk_rel;
count
-------
50
(1 row)
*/
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off;
CREATE SCHEMA apflora;
CREATE SCHEMA auth;
CREATE SCHEMA request;
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA public;
COMMENT ON EXTENSION pgcrypto IS 'cryptographic functions';
CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public;
COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)';
CREATE TYPE apflora.qk_pop_ohne_popber AS (
proj_id uuid,
ap_id uuid,
hw text,
url text[],
text text[]
);
CREATE TYPE apflora.qk_pop_ohne_popmassnber AS (
proj_id uuid,
ap_id uuid,
hw text,
url text[],
text text[]
);
CREATE TYPE apflora.qk_tpop_ohne_massnber AS (
proj_id uuid,
ap_id uuid,
hw text,
url text[],
text text[]
);
CREATE TYPE apflora.qk_tpop_ohne_tpopber AS (
proj_id uuid,
ap_id uuid,
hw text,
url text[],
text text[]
);
CREATE TYPE auth.jwt_token AS (
token text
);
CREATE FUNCTION apflora.ap_insert_add_apart() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
INSERT INTO
apflora.apart (ap_id, art_id)
VALUES (NEW.id, NEW.art_id);
RETURN NEW;
END;
$$;
CREATE FUNCTION apflora.ap_insert_add_idealbiotop() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
INSERT INTO
apflora.idealbiotop (ap_id)
VALUES (NEW.id);
RETURN NEW;
END;
$$;
CREATE FUNCTION apflora.correct_vornach_beginnap_stati(apid uuid) RETURNS void
LANGUAGE plpgsql SECURITY DEFINER
AS $_$
BEGIN
UPDATE apflora.tpop
WHERE id IN (
SELECT
tpop.id
FROM
apflora.tpop
INNER JOIN apflora.pop
ON apflora.tpop.pop_id = apflora.pop.id
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr IS NULL
AND apflora.ap.id = $1
);
UPDATE apflora.pop
WHERE id IN (
SELECT
pop.id
FROM
apflora.pop
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr IS NULL
AND apflora.ap.id = $1
);
UPDATE apflora.tpop
WHERE id IN (
SELECT
tpop.id
FROM
apflora.tpop
INNER JOIN apflora.pop
ON apflora.tpop.pop_id = apflora.pop.id
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr <= apflora.tpop.bekannt_seit
AND apflora.ap.id = $1
);
UPDATE apflora.pop
WHERE id IN (
SELECT
pop.id
FROM
apflora.pop
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr <= apflora.pop.bekannt_seit
AND apflora.ap.id = $1
);
UPDATE apflora.tpop
WHERE id IN (
SELECT
tpop.id
FROM
apflora.tpop
INNER JOIN apflora.pop
ON apflora.tpop.pop_id = apflora.pop.id
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr > apflora.tpop.bekannt_seit
AND apflora.ap.id = $1
);
UPDATE apflora.pop
WHERE id IN (
SELECT
pop.id
FROM
apflora.pop
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr > apflora.pop.bekannt_seit
AND apflora.ap.id = $1
);
UPDATE apflora.tpop
WHERE id IN (
SELECT
tpop.id
FROM
apflora.tpop
INNER JOIN apflora.pop
ON apflora.tpop.pop_id = apflora.pop.id
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr IS NULL
AND apflora.ap.id = $1
);
UPDATE apflora.pop
WHERE id IN (
SELECT
pop.id
FROM
apflora.pop
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr IS NULL
AND apflora.ap.id = $1
);
UPDATE apflora.tpop
WHERE id IN (
SELECT
tpop.id
FROM
apflora.tpop
INNER JOIN apflora.pop
ON apflora.tpop.pop_id = apflora.pop.id
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr <= apflora.tpop.bekannt_seit
AND apflora.ap.id = $1
);
UPDATE apflora.pop
WHERE id IN (
SELECT
pop.id
FROM
apflora.pop
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr <= apflora.pop.bekannt_seit
AND apflora.ap.id = $1
);
UPDATE apflora.tpop
WHERE id IN (
SELECT
tpop.id
FROM
apflora.tpop
INNER JOIN apflora.pop
ON apflora.tpop.pop_id = apflora.pop.id
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr > apflora.tpop.bekannt_seit
AND apflora.ap.id = $1
);
UPDATE apflora.pop
WHERE id IN (
SELECT
pop.id
FROM
apflora.pop
INNER JOIN apflora.ap
ON apflora.pop.ap_id = apflora.ap.id
WHERE
AND apflora.ap.start_jahr > apflora.pop.bekannt_seit
AND apflora.ap.id = $1
);
END;
$_$;
CREATE FUNCTION apflora.login(username text, pass text) RETURNS auth.jwt_token
LANGUAGE plpgsql
AS $_$
declare
_role name;
result auth.jwt_token;
begin
select auth.user_role($1, $2) into _role;
if _role is null then
raise invalid_password using message = 'invalid user or password';
end if;
select auth.sign(
row_to_json(r), current_setting('app.jwt_secret')
) as token
from (
select _role as role,
$1 as username,
extract(epoch from now())::integer + 60*60*24*30 as exp
) r
into result;
return result;
end;
$_$;
CREATE FUNCTION apflora.pop_max_one_massnber_per_year() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
IF
(
NEW.jahr > 0
AND NEW.jahr IN
(
SELECT
jahr
FROM
apflora.popmassnber
WHERE
pop_id = NEW.pop_id
AND id <> NEW.id
)
)
THEN
RAISE EXCEPTION 'Pro Population und Jahr darf maximal ein Massnahmenbericht erfasst werden';
END IF;
RETURN NEW;
END;
$$;
CREATE FUNCTION apflora.pop_max_one_popber_per_year() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
IF
(
NEW.jahr > 0
AND NEW.jahr IN
(
SELECT
jahr
FROM
apflora.popber
WHERE
pop_id = NEW.pop_id
AND id <> NEW.id
)
)
THEN
RAISE EXCEPTION 'Pro Population und Jahr darf maximal ein Populationsbericht erfasst werden';
END IF;
RETURN NEW;
END;
$$;
CREATE FUNCTION apflora.qk_pop_ohne_popber(apid uuid, berichtjahr integer) RETURNS SETOF apflora.qk_pop_ohne_popber
LANGUAGE sql STABLE
AS $_$
SELECT DISTINCT
apflora.ap.proj_id,
apflora.pop.ap_id,
'Population mit angesiedelten Teilpopulationen (vor dem Berichtjahr), die (im Berichtjahr) kontrolliert wurden, aber ohne Populations-Bericht (im Berichtjahr):' AS hw,
ARRAY['Projekte', '4635372c-431c-11e8-bb30-e77f6cdd35a6' , 'Aktionspläne', apflora.ap.id, 'Populationen', apflora.pop.id]::text[] AS "url",
ARRAY[concat('Population (Nr.): ', apflora.pop.nr)]::text[] AS text
FROM
apflora.ap
INNER JOIN
apflora.pop
ON apflora.pop.ap_id = apflora.ap.id
WHERE
apflora.pop.id IN (
SELECT
apflora.tpop.pop_id
FROM
apflora.tpop
WHERE
apflora.tpop.apber_relevant = 1
GROUP BY
apflora.tpop.pop_id
)
AND apflora.pop.id IN (
SELECT DISTINCT
apflora.tpop.pop_id
FROM
apflora.tpop
WHERE
apflora.tpop.id IN (
SELECT DISTINCT
apflora.tpopmassn.tpop_id
FROM
apflora.tpopmassn
WHERE
apflora.tpopmassn.typ in (1, 2, 3)
AND apflora.tpopmassn.jahr < $2
)
AND apflora.tpop.id IN (
SELECT DISTINCT
apflora.tpopkontr.tpop_id
FROM
apflora.tpopkontr
WHERE
apflora.tpopkontr.typ NOT IN ('Zwischenziel', 'Ziel')
AND apflora.tpopkontr.jahr = $2
)
)
AND apflora.pop.id NOT IN (
SELECT DISTINCT
apflora.popber.pop_id
FROM
apflora.popber
WHERE
apflora.popber.jahr = $2
)
AND apflora.pop.ap_id = $1
$_$;
CREATE FUNCTION apflora.qk_pop_ohne_popmassnber(apid uuid, berichtjahr integer) RETURNS SETOF apflora.qk_pop_ohne_popmassnber
LANGUAGE sql STABLE
AS $_$
SELECT DISTINCT
apflora.ap.proj_id,
apflora.pop.ap_id,
'Population mit angesiedelten Teilpopulationen (vor dem Berichtjahr), die (im Berichtjahr) kontrolliert wurden, aber ohne Massnahmen-Bericht (im Berichtjahr):' AS hw,
ARRAY['Projekte', '4635372c-431c-11e8-bb30-e77f6cdd35a6' , 'Aktionspläne', apflora.ap.id, 'Populationen', apflora.pop.id]::text[] AS "url",
ARRAY[concat('Population (Nr.): ', apflora.pop.nr)]::text[] AS text
FROM
apflora.ap
INNER JOIN
apflora.pop
ON apflora.pop.ap_id = apflora.ap.id
WHERE
apflora.pop.id IN (
SELECT
apflora.tpop.pop_id
FROM
apflora.tpop
WHERE
apflora.tpop.apber_relevant = 1
GROUP BY
apflora.tpop.pop_id
)
AND apflora.pop.id IN (
SELECT DISTINCT
apflora.tpop.pop_id
FROM
apflora.tpop
WHERE
apflora.tpop.id IN (
SELECT DISTINCT
apflora.tpopmassn.tpop_id
FROM
apflora.tpopmassn
WHERE
apflora.tpopmassn.typ IN (1, 2, 3)
AND apflora.tpopmassn.jahr < $2
)
AND apflora.tpop.id IN (
SELECT DISTINCT
apflora.tpopkontr.tpop_id
FROM
apflora.tpopkontr
WHERE
apflora.tpopkontr.typ NOT IN ('Zwischenziel', 'Ziel')
AND apflora.tpopkontr.jahr = $2
)
)
AND apflora.pop.id NOT IN (
SELECT DISTINCT
apflora.popmassnber.pop_id
FROM
apflora.popmassnber
WHERE
apflora.popmassnber.jahr = $2
)
AND apflora.pop.ap_id = $1
$_$;
CREATE FUNCTION apflora.qk_tpop_ohne_massnber(apid uuid, berichtjahr integer) RETURNS SETOF apflora.qk_tpop_ohne_massnber
LANGUAGE sql STABLE
AS $_$
SELECT DISTINCT
'4635372c-431c-11e8-bb30-e77f6cdd35a6'::uuid AS proj_id,
apflora.pop.ap_id,
'Teilpopulation mit Ansiedlung (vor dem Berichtjahr) und Kontrolle (im Berichtjahr) aber ohne Massnahmen-Bericht (im Berichtjahr):' AS hw,
ARRAY['Projekte', '4635372c-431c-11e8-bb30-e77f6cdd35a6' , 'Aktionspläne', apflora.pop.ap_id, 'Populationen', apflora.pop.id, 'Teil-Populationen', apflora.tpop.id]::text[] AS "url",
ARRAY[concat('Population (Nr.): ', apflora.pop.nr), concat('Teil-Population (Nr.): ', apflora.tpop.nr)]::text[] AS text
FROM
apflora.pop
INNER JOIN
apflora.tpop
ON apflora.pop.id = apflora.tpop.pop_id
WHERE
apflora.tpop.apber_relevant = 1
AND apflora.tpop.id IN (
SELECT DISTINCT
apflora.tpopmassn.tpop_id
FROM
apflora.tpopmassn
WHERE
apflora.tpopmassn.typ IN (1, 2, 3)
AND apflora.tpopmassn.jahr < $2
)
AND apflora.tpop.id IN (
SELECT DISTINCT
apflora.tpopkontr.tpop_id
FROM
apflora.tpopkontr
WHERE
apflora.tpopkontr.typ NOT IN ('Zwischenziel', 'Ziel')
AND apflora.tpopkontr.jahr = $2
)
AND apflora.tpop.id NOT IN (
SELECT DISTINCT
apflora.tpopmassnber.tpop_id
FROM
apflora.tpopmassnber
WHERE
apflora.tpopmassnber.jahr = $2
)
AND apflora.pop.ap_id = $1
$_$;
CREATE FUNCTION apflora.qk_tpop_ohne_tpopber(apid uuid, berichtjahr integer) RETURNS SETOF apflora.qk_tpop_ohne_tpopber
LANGUAGE sql STABLE
AS $_$
SELECT DISTINCT
apflora.ap.proj_id,
apflora.pop.ap_id,
'Teilpopulation mit Kontrolle (im Berichtjahr) aber ohne Teilpopulations-Bericht (im Berichtjahr):' AS hw,
ARRAY['Projekte', '4635372c-431c-11e8-bb30-e77f6cdd35a6' , 'Aktionspläne', apflora.ap.id, 'Populationen', apflora.pop.id, 'Teil-Populationen', apflora.tpop.id]::text[] AS "url",
ARRAY[concat('Population (Nr.): ', apflora.pop.nr), concat('Teil-Population (Nr.): ', apflora.tpop.nr)]::text[] AS text
FROM
apflora.ap
INNER JOIN
apflora.pop
INNER JOIN
apflora.tpop
ON apflora.pop.id = apflora.tpop.pop_id
ON apflora.pop.ap_id = apflora.ap.id
WHERE
apflora.tpop.apber_relevant = 1
AND apflora.tpop.id IN (
SELECT DISTINCT
apflora.tpopkontr.tpop_id
FROM
apflora.tpopkontr
WHERE
apflora.tpopkontr.typ NOT IN ('Zwischenziel', 'Ziel')
AND apflora.tpopkontr.jahr = $2
)
AND apflora.tpop.id NOT IN (
SELECT DISTINCT
apflora.tpopber.tpop_id
FROM
apflora.tpopber
WHERE
apflora.tpopber.jahr = $2
)
AND apflora.pop.ap_id = $1
$_$;
CREATE FUNCTION apflora.tpop_max_one_massnber_per_year() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
IF
(
NEW.jahr > 0
AND NEW.jahr IN
(
SELECT
jahr
FROM
apflora.tpopmassnber
WHERE
tpop_id = NEW.tpop_id
AND id <> NEW.id
)
)
THEN
RAISE EXCEPTION 'Pro Teilpopulation und Jahr darf maximal ein Massnahmenbericht erfasst werden';
END IF;
RETURN NEW;
END;
$$;
CREATE FUNCTION apflora.tpop_max_one_tpopber_per_year() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
IF
(
NEW.jahr > 0
AND NEW.jahr IN
(
SELECT
jahr
FROM
apflora.tpopber
WHERE
tpop_id = NEW.tpop_id
AND id <> NEW.id
)
)
THEN
RAISE EXCEPTION 'Pro Teilpopulation und Jahr darf maximal ein Teilpopulationsbericht erfasst werden';
END IF;
RETURN NEW;
END;
$$;
CREATE FUNCTION auth.algorithm_sign(signables text, secret text, algorithm text) RETURNS text
LANGUAGE sql
AS $$
WITH
alg AS (
SELECT CASE
WHEN algorithm = 'HS256' THEN 'sha256'
WHEN algorithm = 'HS384' THEN 'sha384'
WHEN algorithm = 'HS512' THEN 'sha512'
SELECT auth.url_encode(hmac(signables, secret, alg.id)) FROM alg;
$$;
CREATE FUNCTION auth.check_role_exists() RETURNS trigger
LANGUAGE plpgsql
AS $$
begin
if not exists (select 1 from pg_roles as r where r.rolname = new.role) then
raise foreign_key_violation using message =
'unknown database role: ' || new.role;
return null;
end if;
return new;
end
$$;
CREATE FUNCTION auth.encrypt_pass() RETURNS trigger
LANGUAGE plpgsql
AS $$
begin
if tg_op = 'INSERT' or new.pass <> old.pass then
new.pass = crypt(new.pass, gen_salt('bf'));
end if;
return new;
end
$$;
CREATE FUNCTION auth.sign(payload json, secret text, algorithm text DEFAULT 'HS256'::text) RETURNS text
LANGUAGE sql
AS $$
WITH
header AS (
SELECT auth.url_encode(convert_to('{"alg":"' || algorithm || '","typ":"JWT"}', 'utf8')) AS data
),
payload AS (
SELECT auth.url_encode(convert_to(payload::text, 'utf8')) AS data
),
signables AS (
SELECT header.data || '.' || payload.data AS data FROM header, payload
)
SELECT
signables.data || '.' ||
auth.algorithm_sign(signables.data, secret, algorithm) FROM signables;
$$;
CREATE FUNCTION auth.url_decode(data text) RETURNS bytea
LANGUAGE sql
AS $$
WITH t AS (SELECT translate(data, '-_', '+/') AS trans),
SELECT decode(
t.trans ||
CASE WHEN rem.remainder > 0
THEN repeat('=', (4 - rem.remainder))
ELSE '' END,
'base64') FROM t, rem;
$$;
CREATE FUNCTION auth.url_encode(data bytea) RETURNS text
LANGUAGE sql
AS $$
SELECT translate(encode(data, 'base64'), E'+/=\n', '-_');
$$;
CREATE FUNCTION auth.user_role(username text, pass text) RETURNS name
LANGUAGE plpgsql
AS $_$
begin
return (
select role from apflora.user
where apflora.user.name = $1
and apflora.user.pass = crypt($2, apflora.user.pass)
);
end;
$_$;
CREATE FUNCTION auth.verify(token text, secret text, algorithm text DEFAULT 'HS256'::text) RETURNS TABLE(header json, payload json, valid boolean)
LANGUAGE sql
AS $$
SELECT
convert_from(auth.url_decode(r[1]), 'utf8')::json AS header,
convert_from(auth.url_decode(r[2]), 'utf8')::json AS payload,
r[3] = auth.algorithm_sign(r[1] || '.' || r[2], secret, algorithm) AS valid
FROM regexp_split_to_array(token, '\.') r;
$$;
CREATE FUNCTION public.adresse_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.ap_bearbstand_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.ap_erfbeurtkrit_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.ap_erfkrit_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.ap_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.ap_umsetzung_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.apber_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.apberuebersicht_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.assozart_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.beob_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.beob_zuordnung_set_quelleid_on_insert() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
IF
length(NEW."NO_NOTE") > 10
THEN
NEW."QuelleId" = '1';
ELSE
NEW."QuelleId" = '2';
END IF;
RETURN NEW;
END;
$$;
CREATE FUNCTION public.beobzuordnung_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.ber_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.current_user_name() RETURNS text
LANGUAGE sql STABLE SECURITY DEFINER
AS $$
select nullif(current_setting('jwt.claims.username', true), '')::text;
$$;
CREATE FUNCTION public.dsql2(i_text text) RETURNS integer
LANGUAGE plpgsql
AS $$
Declare
v_val int;
BEGIN
execute i_text into v_val;
return v_val;
END;
$$;
COMMENT ON FUNCTION public.dsql2(i_text text) IS 'get number of rows per table';
CREATE FUNCTION public.erfkrit_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.idealbiotop_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.pop_entwicklung_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW."MutWer" = current_setting('request.jwt.claim.username', true);
NEW."MutWann" = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.pop_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.pop_status_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.popber_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.popmassnber_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.projekt_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tabelle_delete_notify() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
PERFORM pg_notify('tabelle_update', json_build_object('table', TG_TABLE_NAME, 'type', TG_OP, 'row', row_to_json(OLD))::text);
RETURN OLD;
END;
$$;
CREATE FUNCTION public.tabelle_insert_notify() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
PERFORM pg_notify('tabelle_update', json_build_object('table', TG_TABLE_NAME, 'type', TG_OP, 'row', row_to_json(NEW))::text);
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tabelle_update_notify() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
PERFORM pg_notify('tabelle_update', json_build_object('table', TG_TABLE_NAME, 'type', TG_OP, 'row', row_to_json(NEW))::text);
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpop_apberrelevant_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpop_entwicklung_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpop_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpopber_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpopkontr_idbiotuebereinst_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpopkontr_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpopkontr_typ_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpopkontrzaehl_einheit_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpopkontrzaehl_methode_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpopkontrzaehl_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpopmassn_erfbeurt_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpopmassn_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpopmassn_typ_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.tpopmassnber_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.ziel_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.ziel_typ_werte_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION public.zielber_on_update_set_mut() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
NEW.changed_by = current_setting('request.jwt.claim.username', true);
NEW.changed = NOW();
RETURN NEW;
END;
$$;
CREATE FUNCTION request.cookie(c text) RETURNS text
LANGUAGE sql STABLE
AS $$
select request.env_var('request.cookie.' || c);
$$;
CREATE FUNCTION request.env_var(v text) RETURNS text
LANGUAGE sql STABLE
AS $$
select current_setting(v, true);
$$;
CREATE FUNCTION request.header(h text) RETURNS text
LANGUAGE sql STABLE
AS $$
select request.env_var('request.header.' || h);
$$;
CREATE FUNCTION request.jwt_claim(c text) RETURNS text
LANGUAGE sql STABLE
AS $$
select request.env_var('request.jwt.claim.' || c);
$$;
CREATE FUNCTION request.user_name() RETURNS text
LANGUAGE sql STABLE
AS $$
select case request.jwt_claim('username')
when '' then ''
else request.jwt_claim('username')::text
end
$$;
CREATE FUNCTION request.user_role() RETURNS text
LANGUAGE sql STABLE
AS $$
select request.jwt_claim('role')::text;
$$;
SET default_tablespace = '';
SET default_with_oids = false;
CREATE TABLE apflora._variable (
"KonstId" integer NOT NULL,
apber_jahr smallint,
"ApArtId" integer
);
COMMENT ON COLUMN apflora._variable.apber_jahr IS 'Von Access aus ein Berichtsjahr wählen, um die Erstellung des Jahresberichts zu beschleunigen';
COMMENT ON COLUMN apflora._variable."ApArtId" IS 'Von Access aus eine Art wählen, um views zu beschleunigen';
CREATE SEQUENCE apflora."_variable_KonstId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."_variable_KonstId_seq" OWNED BY apflora._variable."KonstId";
CREATE TABLE apflora.adresse (
id_old integer,
name text,
adresse text,
telefon text,
email text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
evab_id_person uuid,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
freiw_erfko boolean DEFAULT false,
evab_nachname character varying(50) DEFAULT NULL::character varying,
evab_vorname character varying(50) DEFAULT NULL::character varying,
evab_ort character varying(50) DEFAULT NULL::character varying
);
COMMENT ON COLUMN apflora.adresse.id_old IS 'Frühere id';
COMMENT ON COLUMN apflora.adresse.name IS 'Vor- und Nachname';
COMMENT ON COLUMN apflora.adresse.adresse IS 'Strasse, PLZ und Ort';
COMMENT ON COLUMN apflora.adresse.telefon IS 'Telefonnummer';
COMMENT ON COLUMN apflora.adresse.email IS 'Email';
COMMENT ON COLUMN apflora.adresse.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.adresse.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.adresse.evab_id_person IS 'Personen werden in EvAB separat und mit eigener ID erfasst. Daher muss die passende Person hier gewählt werden';
COMMENT ON COLUMN apflora.adresse.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.adresse.freiw_erfko IS 'Ist die Person freiwillige(r) Kontrolleur(in)';
CREATE SEQUENCE apflora."adresse_AdrId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."adresse_AdrId_seq" OWNED BY apflora.adresse.id_old;
CREATE TABLE apflora.ae_eigenschaften (
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
taxid integer,
familie character varying(100) DEFAULT NULL::character varying,
artname character varying(100) DEFAULT NULL::character varying,
namedeutsch character varying(100) DEFAULT NULL::character varying,
status character varying(47) DEFAULT NULL::character varying,
artwert smallint,
kefkontrolljahr smallint,
fnsjahresartjahr smallint,
kefart boolean DEFAULT false
);
COMMENT ON COLUMN apflora.ae_eigenschaften.id IS 'Primärschlüssel';
CREATE TABLE apflora.ae_lrdelarze (
sort integer NOT NULL,
label character varying(50) DEFAULT NULL::character varying,
einheit character varying(255) DEFAULT NULL::character varying,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.ae_lrdelarze.sort IS 'Primärschlüssel der Tabelle ArtenDb_LR';
COMMENT ON COLUMN apflora.ae_lrdelarze.id IS 'Primärschlüssel';
CREATE TABLE apflora.ap (
id_old integer,
bearbeitung integer,
start_jahr smallint,
umsetzung integer,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
art_id uuid,
bearbeiter uuid,
proj_id uuid
);
COMMENT ON COLUMN apflora.ap.id_old IS 'Frühere id. = SISF2-Nr';
COMMENT ON COLUMN apflora.ap.bearbeitung IS 'In welchem Bearbeitungsstand befindet sich der AP?';
COMMENT ON COLUMN apflora.ap.start_jahr IS 'Wann wurde mit der Umsetzung des Aktionsplans begonnen?';
COMMENT ON COLUMN apflora.ap.umsetzung IS 'In welchem Umsetzungsstand befindet sich der AP?';
COMMENT ON COLUMN apflora.ap.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ap.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ap.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.ap.art_id IS 'Namensgebende Art. Unter ihrem Namen bzw. Nummer werden Kontrollen an InfoFlora geliefert';
COMMENT ON COLUMN apflora.ap.bearbeiter IS 'Zugehöriger Bearbeiter. Fremdschlüssel aus der Tabelle "adresse"';
COMMENT ON COLUMN apflora.ap.proj_id IS 'Zugehöriger Aktionsplan. Fremdschlüssel aus der Tabelle "projekt"';
CREATE SEQUENCE apflora."ap_ApArtId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."ap_ApArtId_seq" OWNED BY apflora.ap.id_old;
CREATE TABLE apflora.ap_bearbstand_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.ap_bearbstand_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ap_bearbstand_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ap_bearbstand_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.ap_erfbeurtkrit_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.ap_erfbeurtkrit_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ap_erfbeurtkrit_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ap_erfbeurtkrit_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.ap_erfkrit_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.ap_erfkrit_werte.text IS 'Wie werden die durchgefuehrten Massnahmen beurteilt?';
COMMENT ON COLUMN apflora.ap_erfkrit_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ap_erfkrit_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ap_erfkrit_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.ap_umsetzung_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.ap_umsetzung_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ap_umsetzung_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ap_umsetzung_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.apart (
id_old integer,
changed date,
changed_by character varying(20) DEFAULT NULL::character varying,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
ap_id uuid,
art_id uuid
);
COMMENT ON COLUMN apflora.apart.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.apart.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.apart.changed_by IS 'Wer hat den Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.apart.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.apart.ap_id IS 'Zugehöriger Aktionsplan. Fremdschlüssel aus der Tabelle "ap"';
CREATE TABLE apflora.apber (
id_old integer,
jahr smallint,
situation text,
vergleich_vorjahr_gesamtziel text,
beurteilung integer,
veraenderung_zum_vorjahr character varying(2) DEFAULT NULL::character varying,
apber_analyse text,
konsequenzen_umsetzung text,
konsequenzen_erfolgskontrolle text,
biotope_neue text,
biotope_optimieren text,
massnahmen_optimieren text,
wirkung_auf_art text,
datum date,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
massnahmen_ap_bearb text,
massnahmen_planung_vs_ausfuehrung text,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
ap_id uuid,
bearbeiter uuid
);
COMMENT ON COLUMN apflora.apber.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.apber.jahr IS 'Für welches Jahr gilt der Bericht?';
COMMENT ON COLUMN apflora.apber.situation IS 'Beschreibung der Situation im Berichtjahr. Seit 2017 nicht mehr verwendet: Früher wurden hier die Massnahmen aufgelistet';
COMMENT ON COLUMN apflora.apber.vergleich_vorjahr_gesamtziel IS 'Vergleich zu Vorjahr und Ausblick auf das Gesamtziel';
COMMENT ON COLUMN apflora.apber.beurteilung IS 'Beurteilung des Erfolgs des Aktionsplans bisher';
COMMENT ON COLUMN apflora.apber.veraenderung_zum_vorjahr IS 'Veränderung gegenüber dem Vorjahr: plus heisst aufgestiegen, minus heisst abgestiegen';
COMMENT ON COLUMN apflora.apber.apber_analyse IS 'Was sind die Ursachen fuer die beobachtete Entwicklung?';
COMMENT ON COLUMN apflora.apber.konsequenzen_umsetzung IS 'Konsequenzen für die Umsetzung';
COMMENT ON COLUMN apflora.apber.konsequenzen_erfolgskontrolle IS 'Konsequenzen für die Erfolgskontrolle';
COMMENT ON COLUMN apflora.apber.biotope_neue IS 'Bemerkungen zum Aussagebereich A: Grundmengen und getroffene Massnahmen';
COMMENT ON COLUMN apflora.apber.biotope_optimieren IS 'Bemerkungen zum Aussagebereich B: Bestandeskontrolle';
COMMENT ON COLUMN apflora.apber.massnahmen_optimieren IS 'Bemerkungen zum Aussagebereich C: Zwischenbilanz zur Wirkung von Massnahmen';
COMMENT ON COLUMN apflora.apber.wirkung_auf_art IS 'Bemerkungen zum Aussagebereich D: Einschätzung der Wirkung des AP insgesamt pro Art';
COMMENT ON COLUMN apflora.apber.datum IS 'Datum der Nachführung';
COMMENT ON COLUMN apflora.apber.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.apber.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.apber.massnahmen_ap_bearb IS 'Bemerkungen zum Aussagebereich C: Weitere Aktivitäten der Aktionsplan-Verantwortlichen';
COMMENT ON COLUMN apflora.apber.massnahmen_planung_vs_ausfuehrung IS 'Bemerkungen zum Aussagebereich C: Vergleich Ausführung/Planung';
COMMENT ON COLUMN apflora.apber.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.apber.ap_id IS 'Zugehöriger Aktionsplan. Fremdschlüssel aus der Tabelle "ap"';
COMMENT ON COLUMN apflora.apber.bearbeiter IS 'Zugehöriger Bearbeiter. Fremdschlüssel aus der Tabelle "adresse"';
CREATE SEQUENCE apflora."apber_JBerId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."apber_JBerId_seq" OWNED BY apflora.apber.id_old;
CREATE TABLE apflora.apberuebersicht (
jahr smallint,
bemerkungen text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id_old integer,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
proj_id uuid
);
COMMENT ON COLUMN apflora.apberuebersicht.jahr IS 'Berichtsjahr. Zusammen mit proj_id eindeutig';
COMMENT ON COLUMN apflora.apberuebersicht.bemerkungen IS 'Bemerkungen zur Artübersicht';
COMMENT ON COLUMN apflora.apberuebersicht.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.apberuebersicht.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.apberuebersicht.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.apberuebersicht.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.apberuebersicht.proj_id IS 'Zugehöriger Aktionsplan. Fremdschlüssel aus der Tabelle "projekt"';
CREATE SEQUENCE apflora.apberuebersicht_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora.apberuebersicht_id_seq OWNED BY apflora.apberuebersicht.id_old;
CREATE TABLE apflora.assozart (
id_old integer,
bemerkungen text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
ae_id uuid,
ap_id uuid
);
COMMENT ON COLUMN apflora.assozart.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.assozart.bemerkungen IS 'Bemerkungen zur Assoziation';
COMMENT ON COLUMN apflora.assozart.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.assozart.changed_by IS 'Wer hat den Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.assozart.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.assozart.ap_id IS 'Zugehöriger Aktionsplan. Fremdschlüssel aus der Tabelle "ap"';
CREATE SEQUENCE apflora."assozart_AaId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."assozart_AaId_seq" OWNED BY apflora.assozart.id_old;
CREATE TABLE apflora.beob (
id_old integer,
id_field character varying(38) DEFAULT NULL::character varying,
art_id_old integer,
datum date,
autor character varying(100) DEFAULT NULL::character varying,
x integer,
y integer,
data jsonb,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
art_id uuid,
tpop_id uuid,
nicht_zuordnen boolean DEFAULT false,
bemerkungen text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
quelle_id uuid
);
COMMENT ON COLUMN apflora.beob.id_old IS 'Frühere id';
COMMENT ON COLUMN apflora.beob.art_id_old IS 'Frühere Art id (=SISF2-Nr)';
COMMENT ON COLUMN apflora.beob.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.beob.tpop_id IS 'Dieser Teilpopulation wurde die Beobachtung zugeordnet. Fremdschlüssel aus der Tabelle "tpop"';
COMMENT ON COLUMN apflora.beob.nicht_zuordnen IS 'Wird ja gesetzt, wenn eine Beobachtung keiner Teilpopulation zugeordnet werden kann. Sollte im Bemerkungsfeld begründet werden. In der Regel ist die Artbestimmung zweifelhaft. Oder die Beobachtung ist nicht (genau genug) lokalisierbar';
COMMENT ON COLUMN apflora.beob.bemerkungen IS 'Bemerkungen zur Zuordnung';
COMMENT ON COLUMN apflora.beob.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.beob.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.beob.quelle_id IS 'Zugehörige Beobachtungs-Quelle. Fremdschlüssel aus der Tabelle "beob_quelle_werte"';
CREATE SEQUENCE apflora.beob_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora.beob_id_seq OWNED BY apflora.beob.id_old;
CREATE TABLE apflora.beob_quelle_werte (
id_old integer,
name character varying(255) DEFAULT NULL::character varying,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
CREATE SEQUENCE apflora."beobart_BeobArtId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."beobart_BeobArtId_seq" OWNED BY apflora.apart.id_old;
CREATE TABLE apflora.ber (
id_old integer,
autor character varying(150) DEFAULT NULL::character varying,
jahr smallint,
titel text,
url text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
ap_id uuid
);
COMMENT ON COLUMN apflora.ber.id_old IS 'Primärschlüssel der Tabelle "ber"';
COMMENT ON COLUMN apflora.ber.autor IS 'Autor des Berichts';
COMMENT ON COLUMN apflora.ber.jahr IS 'Jahr der Publikation';
COMMENT ON COLUMN apflora.ber.titel IS 'Titel des Berichts';
COMMENT ON COLUMN apflora.ber.url IS 'Link zum Bericht';
COMMENT ON COLUMN apflora.ber.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ber.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ber.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.ber.ap_id IS 'Zugehöriger Aktionsplan. Fremdschlüssel aus der Tabelle "ap"';
CREATE SEQUENCE apflora."ber_BerId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."ber_BerId_seq" OWNED BY apflora.ber.id_old;
CREATE TABLE apflora.erfkrit (
id_old integer,
erfolg integer,
kriterien text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
ap_id uuid
);
COMMENT ON COLUMN apflora.erfkrit.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.erfkrit.erfolg IS 'Wie gut werden die Ziele erreicht? Auswahl aus der Tabelle "ap_erfkrit_werte"';
COMMENT ON COLUMN apflora.erfkrit.kriterien IS 'Beschreibung der Kriterien für den Erfolg';
COMMENT ON COLUMN apflora.erfkrit.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.erfkrit.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.erfkrit.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.erfkrit.ap_id IS 'Zugehöriger Aktionsplan. Fremdschlüssel aus der Tabelle "ap"';
CREATE SEQUENCE apflora."erfkrit_ErfkritId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."erfkrit_ErfkritId_seq" OWNED BY apflora.erfkrit.id_old;
CREATE TABLE apflora.evab_typologie (
"TYPO" character varying(9) NOT NULL,
"LEBENSRAUM" character varying(100),
"Alliance" character varying(100)
);
CREATE TABLE apflora.gemeinde (
name character varying(50) DEFAULT NULL::character varying,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
CREATE TABLE apflora.idealbiotop (
erstelldatum date,
hoehenlage text,
region text,
exposition text,
besonnung text,
hangneigung text,
boden_typ text,
boden_kalkgehalt text,
boden_durchlaessigkeit text,
boden_humus text,
boden_naehrstoffgehalt text,
wasserhaushalt text,
konkurrenz text,
moosschicht text,
krautschicht text,
strauchschicht text,
baumschicht text,
bemerkungen text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
ap_id uuid
);
COMMENT ON COLUMN apflora.idealbiotop.erstelldatum IS 'Erstelldatum';
COMMENT ON COLUMN apflora.idealbiotop.hoehenlage IS 'Höhenlage';
COMMENT ON COLUMN apflora.idealbiotop.region IS 'Region';
COMMENT ON COLUMN apflora.idealbiotop.exposition IS 'Exposition';
COMMENT ON COLUMN apflora.idealbiotop.besonnung IS 'Besonnung';
COMMENT ON COLUMN apflora.idealbiotop.hangneigung IS 'Hangneigung';
COMMENT ON COLUMN apflora.idealbiotop.boden_typ IS 'Bodentyp';
COMMENT ON COLUMN apflora.idealbiotop.boden_kalkgehalt IS 'Kalkgehalt im Boden';
COMMENT ON COLUMN apflora.idealbiotop.boden_durchlaessigkeit IS 'Bodendurchlässigkeit';
COMMENT ON COLUMN apflora.idealbiotop.boden_humus IS 'Bodenhumusgehalt';
COMMENT ON COLUMN apflora.idealbiotop.boden_naehrstoffgehalt IS 'Bodennährstoffgehalt';
COMMENT ON COLUMN apflora.idealbiotop.wasserhaushalt IS 'Wasserhaushalt';
COMMENT ON COLUMN apflora.idealbiotop.konkurrenz IS 'Konkurrenz';
COMMENT ON COLUMN apflora.idealbiotop.moosschicht IS 'Moosschicht';
COMMENT ON COLUMN apflora.idealbiotop.krautschicht IS 'Krautschicht';
COMMENT ON COLUMN apflora.idealbiotop.strauchschicht IS 'Strauchschicht';
COMMENT ON COLUMN apflora.idealbiotop.baumschicht IS 'Baumschicht';
COMMENT ON COLUMN apflora.idealbiotop.bemerkungen IS 'Bemerkungen';
COMMENT ON COLUMN apflora.idealbiotop.changed IS 'Wann wurde der Datensatz zuletzt verändert?';
COMMENT ON COLUMN apflora.idealbiotop.changed_by IS 'Wer hat den Datensatz zuletzt verändert?';
COMMENT ON COLUMN apflora.idealbiotop.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.idealbiotop.ap_id IS 'Zugehöriger Aktionsplan. Fremdschlüssel aus der Tabelle "ap"';
CREATE TABLE apflora.message (
id_old integer,
message text NOT NULL,
"time" timestamp without time zone DEFAULT now() NOT NULL,
active boolean DEFAULT true NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.message.message IS 'Nachricht an die Benutzer';
CREATE SEQUENCE apflora.message_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora.message_id_seq OWNED BY apflora.message.id_old;
CREATE TABLE apflora.pop (
id_old integer,
nr integer,
name character varying(150) DEFAULT NULL::character varying,
status integer,
status_unklar_begruendung text,
bekannt_seit smallint,
x integer,
y integer,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
ap_id uuid,
status_unklar boolean DEFAULT false,
CONSTRAINT zulaessige_x_koordinate CHECK (((x IS NULL) OR ((x > 2485071) AND (x < 2828516)))),
CONSTRAINT zulaessige_y_koordinate CHECK (((y IS NULL) OR ((y > 1075346) AND (y < 1299942))))
);
COMMENT ON COLUMN apflora.pop.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.pop.nr IS 'Nummer der Population';
COMMENT ON COLUMN apflora.pop.name IS 'Bezeichnung der Population';
COMMENT ON COLUMN apflora.pop.status IS 'Herkunft der Population: autochthon oder angesiedelt? Auswahl aus der Tabelle "pop_status_werte"';
COMMENT ON COLUMN apflora.pop.status_unklar_begruendung IS 'Begründung, wieso die Herkunft unklar ist';
COMMENT ON COLUMN apflora.pop.bekannt_seit IS 'Seit wann ist die Population bekannt?';
COMMENT ON COLUMN apflora.pop.x IS 'Wird in der Regel von einer Teilpopulation übernommen';
COMMENT ON COLUMN apflora.pop.y IS 'Wird in der Regel von einer Teilpopulation übernommen';
COMMENT ON COLUMN apflora.pop.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.pop.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.pop.id IS 'Primärschlüssel der Tabelle "pop"';
COMMENT ON COLUMN apflora.pop.ap_id IS 'Zugehöriger Aktionsplan. Fremdschlüssel aus der Tabelle "ap"';
COMMENT ON COLUMN apflora.pop.status_unklar IS 'true = die Herkunft der Population ist unklar';
CREATE SEQUENCE apflora."pop_PopId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."pop_PopId_seq" OWNED BY apflora.pop.id_old;
CREATE TABLE apflora.pop_status_werte (
code integer,
text character varying(60) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.pop_status_werte.text IS 'Beschreibung der Herkunft';
COMMENT ON COLUMN apflora.pop_status_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.pop_status_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.pop_status_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.popber (
id_old integer,
jahr smallint,
entwicklung integer,
bemerkungen text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
pop_id uuid
);
COMMENT ON COLUMN apflora.popber.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.popber.jahr IS 'Für welches Jahr gilt der Bericht?';
COMMENT ON COLUMN apflora.popber.entwicklung IS 'Beurteilung der Populationsentwicklung: Auswahl aus Tabelle "tpop_entwicklung_werte"';
COMMENT ON COLUMN apflora.popber.bemerkungen IS 'Bemerkungen zur Beurteilung';
COMMENT ON COLUMN apflora.popber.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.popber.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.popber.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.popber.pop_id IS 'Zugehörige Population. Fremdschlüssel aus der Tabelle "pop"';
CREATE SEQUENCE apflora."popber_PopBerId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."popber_PopBerId_seq" OWNED BY apflora.popber.id_old;
CREATE TABLE apflora.popmassnber (
id_old integer,
jahr smallint,
beurteilung integer,
bemerkungen text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
pop_id uuid
);
COMMENT ON COLUMN apflora.popmassnber.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.popmassnber.jahr IS 'Für welches Jahr gilt der Bericht?';
COMMENT ON COLUMN apflora.popmassnber.beurteilung IS 'Wie wird die Wirkung aller im Rahmen des AP durchgeführten Massnahmen beurteilt?';
COMMENT ON COLUMN apflora.popmassnber.bemerkungen IS 'Bemerkungen zur Beurteilung';
COMMENT ON COLUMN apflora.popmassnber.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.popmassnber.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.popmassnber.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.popmassnber.pop_id IS 'Zugehörige Population. Fremdschlüssel aus der Tabelle "pop"';
CREATE SEQUENCE apflora."popmassnber_PopMassnBerId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."popmassnber_PopMassnBerId_seq" OWNED BY apflora.popmassnber.id_old;
CREATE TABLE apflora.projekt (
id_old integer,
name character varying(150) DEFAULT NULL::character varying,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.projekt.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.projekt.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
CREATE SEQUENCE apflora."projekt_ProjId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."projekt_ProjId_seq" OWNED BY apflora.projekt.id_old;
CREATE TABLE apflora.tpop (
id_old integer,
nr integer,
gemeinde text,
flurname text,
x integer,
y integer,
radius smallint,
hoehe smallint,
exposition character varying(50) DEFAULT NULL::character varying,
klima character varying(50) DEFAULT NULL::character varying,
neigung character varying(50) DEFAULT NULL::character varying,
beschreibung text,
kataster_nr text,
status integer,
status_unklar_grund text,
apber_relevant integer,
bekannt_seit smallint,
eigentuemer text,
kontakt text,
nutzungszone text,
bewirtschafter text,
bewirtschaftung text,
bemerkungen text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
pop_id uuid,
status_unklar boolean DEFAULT false,
CONSTRAINT zulaessige_x_koordinate CHECK (((x IS NULL) OR ((x > 2485071) AND (x < 2828516)))),
CONSTRAINT zulaessige_y_koordinate CHECK (((y IS NULL) OR ((y > 1075346) AND (y < 1299942))))
);
COMMENT ON COLUMN apflora.tpop.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.tpop.nr IS 'Nummer der Teilpopulation';
COMMENT ON COLUMN apflora.tpop.gemeinde IS 'Gemeinde';
COMMENT ON COLUMN apflora.tpop.flurname IS 'Flurname';
COMMENT ON COLUMN apflora.tpop.x IS 'X-Koordinate';
COMMENT ON COLUMN apflora.tpop.y IS 'Y-Koordinate';
COMMENT ON COLUMN apflora.tpop.radius IS 'Radius der Teilpopulation (m)';
COMMENT ON COLUMN apflora.tpop.hoehe IS 'Höhe über Meer (m)';
COMMENT ON COLUMN apflora.tpop.exposition IS 'Exposition / Besonnung des Standorts';
COMMENT ON COLUMN apflora.tpop.klima IS 'Klima des Standorts';
COMMENT ON COLUMN apflora.tpop.neigung IS 'Hangneigung des Standorts';
COMMENT ON COLUMN apflora.tpop.beschreibung IS 'Beschreibung der Fläche';
COMMENT ON COLUMN apflora.tpop.kataster_nr IS 'Kataster-Nummer';
COMMENT ON COLUMN apflora.tpop.status IS 'Herkunft der Teilpopulation. Auswahl aus Tabelle "pop_status_werte"';
COMMENT ON COLUMN apflora.tpop.status_unklar_grund IS 'Wieso ist der Status unklar?';
COMMENT ON COLUMN apflora.tpop.apber_relevant IS 'Ist die Teilpopulation für den AP-Bericht relevant? Auswahl aus der Tabelle "tpop_apberrelevant_werte"';
COMMENT ON COLUMN apflora.tpop.bekannt_seit IS 'Seit wann ist die Teilpopulation bekannt?';
COMMENT ON COLUMN apflora.tpop.eigentuemer IS 'EigentümerIn';
COMMENT ON COLUMN apflora.tpop.kontakt IS 'Kontaktperson vor Ort';
COMMENT ON COLUMN apflora.tpop.nutzungszone IS 'Nutzungszone';
COMMENT ON COLUMN apflora.tpop.bewirtschafter IS 'Wer bewirtschaftet die Fläche?';
COMMENT ON COLUMN apflora.tpop.bewirtschaftung IS 'Wie wird die Fläche bewirtschaftet?';
COMMENT ON COLUMN apflora.tpop.bemerkungen IS 'Bemerkungen zur Teilpopulation';
COMMENT ON COLUMN apflora.tpop.changed IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpop.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpop.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.tpop.pop_id IS 'Zugehörige Population. Fremdschlüssel aus der Tabelle "pop"';
COMMENT ON COLUMN apflora.tpop.status_unklar IS 'Ist der Status der Teilpopulation unklar? (es bestehen keine glaubwuerdigen Beboachtungen)';
CREATE SEQUENCE apflora."tpop_TPopId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."tpop_TPopId_seq" OWNED BY apflora.tpop.id_old;
CREATE TABLE apflora.tpop_apberrelevant_werte (
code integer,
text text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.tpop_apberrelevant_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpop_apberrelevant_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpop_apberrelevant_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.tpop_entwicklung_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.tpop_entwicklung_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpop_entwicklung_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpop_entwicklung_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.tpopber (
id_old integer,
jahr smallint,
entwicklung integer,
bemerkungen text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
tpop_id uuid
);
COMMENT ON COLUMN apflora.tpopber.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.tpopber.jahr IS 'Für welches Jahr gilt der Bericht?';
COMMENT ON COLUMN apflora.tpopber.entwicklung IS 'Beurteilung der Populationsentwicklung: Auswahl aus Tabelle "tpop_entwicklung_werte"';
COMMENT ON COLUMN apflora.tpopber.bemerkungen IS 'Bemerkungen zur Beurteilung';
COMMENT ON COLUMN apflora.tpopber.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopber.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopber.tpop_id IS 'Zugehörige Teilpopulation. Fremdschlüssel der Tabelle "tpop"';
CREATE SEQUENCE apflora."tpopber_TPopBerId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."tpopber_TPopBerId_seq" OWNED BY apflora.tpopber.id_old;
CREATE TABLE apflora.tpopkontr (
id_old integer,
typ character varying(50) DEFAULT NULL::character varying,
datum date,
jahr smallint,
jungpflanzen_anzahl integer,
vitalitaet text,
ueberlebensrate smallint,
entwicklung integer,
ursachen text,
erfolgsbeurteilung text,
umsetzung_aendern text,
kontrolle_aendern text,
bemerkungen text,
lr_delarze text,
flaeche integer,
lr_umgebung_delarze text,
vegetationstyp character varying(100) DEFAULT NULL::character varying,
konkurrenz character varying(100) DEFAULT NULL::character varying,
moosschicht character varying(100) DEFAULT NULL::character varying,
krautschicht character varying(100) DEFAULT NULL::character varying,
strauchschicht text,
baumschicht character varying(100) DEFAULT NULL::character varying,
boden_typ text,
boden_kalkgehalt character varying(100) DEFAULT NULL::character varying,
boden_durchlaessigkeit character varying(100) DEFAULT NULL::character varying,
boden_humus character varying(100) DEFAULT NULL::character varying,
boden_naehrstoffgehalt character varying(100) DEFAULT NULL::character varying,
boden_abtrag text,
wasserhaushalt text,
idealbiotop_uebereinstimmung integer,
handlungsbedarf text,
flaeche_ueberprueft integer,
deckung_vegetation smallint,
deckung_nackter_boden smallint,
deckung_ap_art smallint,
vegetationshoehe_maximum smallint,
vegetationshoehe_mittel smallint,
gefaehrdung text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
zeit_id uuid DEFAULT public.uuid_generate_v1mc(),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
tpop_id uuid,
bearbeiter uuid,
plan_vorhanden boolean DEFAULT false,
jungpflanzen_vorhanden boolean
);
COMMENT ON COLUMN apflora.tpopkontr.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.tpopkontr.typ IS 'Typ der Kontrolle. Auswahl aus Tabelle "tpopkontr_typ_werte"';
COMMENT ON COLUMN apflora.tpopkontr.datum IS 'Wann wurde kontrolliert?';
COMMENT ON COLUMN apflora.tpopkontr.jahr IS 'In welchem Jahr wurde kontrolliert? Für welches Jahr gilt die Beschreibung?';
COMMENT ON COLUMN apflora.tpopkontr.jungpflanzen_anzahl IS 'Anzahl Jungpflanzen';
COMMENT ON COLUMN apflora.tpopkontr.vitalitaet IS 'Vitalität der Pflanzen';
COMMENT ON COLUMN apflora.tpopkontr.ueberlebensrate IS 'Überlebensrate in Prozent';
COMMENT ON COLUMN apflora.tpopkontr.entwicklung IS 'Entwicklung des Bestandes. Auswahl aus Tabelle "tpop_entwicklung_werte"';
COMMENT ON COLUMN apflora.tpopkontr.ursachen IS 'Ursachen der Entwicklung';
COMMENT ON COLUMN apflora.tpopkontr.erfolgsbeurteilung IS 'Erfolgsbeurteilung';
COMMENT ON COLUMN apflora.tpopkontr.umsetzung_aendern IS 'Vorschlag für Änderung der Umsetzung';
COMMENT ON COLUMN apflora.tpopkontr.kontrolle_aendern IS 'Vorschlag für Änderung der Erfolgskontrolle';
COMMENT ON COLUMN apflora.tpopkontr.bemerkungen IS 'Bemerkungen zur Erfolgskontrolle';
COMMENT ON COLUMN apflora.tpopkontr.lr_delarze IS 'Lebensraumtyp nach Delarze';
COMMENT ON COLUMN apflora.tpopkontr.flaeche IS 'Fläche der Teilpopulation';
COMMENT ON COLUMN apflora.tpopkontr.lr_umgebung_delarze IS 'Lebensraumtyp der direkt angrenzenden Umgebung (nach Delarze)';
COMMENT ON COLUMN apflora.tpopkontr.vegetationstyp IS 'Vegetationstyp';
COMMENT ON COLUMN apflora.tpopkontr.konkurrenz IS 'Konkurrenz';
COMMENT ON COLUMN apflora.tpopkontr.moosschicht IS 'Moosschicht';
COMMENT ON COLUMN apflora.tpopkontr.krautschicht IS 'Krautschicht';
COMMENT ON COLUMN apflora.tpopkontr.strauchschicht IS 'Strauchschicht, ehemals Verbuschung (%)';
COMMENT ON COLUMN apflora.tpopkontr.baumschicht IS 'Baumschicht';
COMMENT ON COLUMN apflora.tpopkontr.boden_typ IS 'Bodentyp';
COMMENT ON COLUMN apflora.tpopkontr.boden_kalkgehalt IS 'Kalkgehalt des Bodens';
COMMENT ON COLUMN apflora.tpopkontr.boden_durchlaessigkeit IS 'Durchlässigkeit des Bodens';
COMMENT ON COLUMN apflora.tpopkontr.boden_humus IS 'Humusgehalt des Bodens';
COMMENT ON COLUMN apflora.tpopkontr.boden_naehrstoffgehalt IS 'Nährstoffgehalt des Bodens';
COMMENT ON COLUMN apflora.tpopkontr.boden_abtrag IS 'Oberbodenabtrag';
COMMENT ON COLUMN apflora.tpopkontr.wasserhaushalt IS 'Wasserhaushalt';
COMMENT ON COLUMN apflora.tpopkontr.idealbiotop_uebereinstimmung IS 'Übereinstimmung mit dem Idealbiotop';
COMMENT ON COLUMN apflora.tpopkontr.handlungsbedarf IS 'Handlungsbedarf bezüglich Biotop';
COMMENT ON COLUMN apflora.tpopkontr.flaeche_ueberprueft IS 'Überprüfte Fläche in m2. Nur für Freiwilligen-Erfolgskontrolle';
COMMENT ON COLUMN apflora.tpopkontr.deckung_vegetation IS 'Von Pflanzen, Streu oder Moos bedeckter Boden (%). Nur für Freiwilligen-Erfolgskontrolle. Nur bis 2012 erfasst.';
COMMENT ON COLUMN apflora.tpopkontr.deckung_nackter_boden IS 'Flächenanteil nackter Boden (%). Nur für Freiwilligen-Erfolgskontrolle';
COMMENT ON COLUMN apflora.tpopkontr.deckung_ap_art IS 'Flächenanteil der überprüften Pflanzenart (%). Nur für Freiwilligen-Erfolgskontrolle';
COMMENT ON COLUMN apflora.tpopkontr.vegetationshoehe_maximum IS 'Maximale Vegetationshöhe in cm. Nur für Freiwilligen-Erfolgskontrolle';
COMMENT ON COLUMN apflora.tpopkontr.vegetationshoehe_mittel IS 'Mittlere Vegetationshöhe in cm. Nur für Freiwilligen-Erfolgskontrolle';
COMMENT ON COLUMN apflora.tpopkontr.gefaehrdung IS 'Gefährdung. Nur für Freiwilligen-Erfolgskontrolle';
COMMENT ON COLUMN apflora.tpopkontr.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopkontr.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopkontr.zeit_id IS 'GUID für den Export von Zeiten in EvAB';
COMMENT ON COLUMN apflora.tpopkontr.id IS 'Primärschlüssel. Wird u.a. verwendet für die Identifikation der Beobachtung im nationalen Beobachtungs-Daten-Kreislauf';
COMMENT ON COLUMN apflora.tpopkontr.tpop_id IS 'Zugehörige Teilpopulation. Fremdschlüssel der Tabelle "tpop"';
COMMENT ON COLUMN apflora.tpopkontr.bearbeiter IS 'Zugehöriger Bearbeiter. Fremdschlüssel aus der Tabelle "adresse"';
COMMENT ON COLUMN apflora.tpopkontr.plan_vorhanden IS 'Fläche / Wuchsort auf Plan eingezeichnet? Nur für Freiwilligen-Erfolgskontrolle';
COMMENT ON COLUMN apflora.tpopkontr.jungpflanzen_vorhanden IS 'Gibt es neben alten Pflanzen auch junge? Nur für Freiwilligen-Erfolgskontrolle';
CREATE SEQUENCE apflora."tpopkontr_TPopKontrId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."tpopkontr_TPopKontrId_seq" OWNED BY apflora.tpopkontr.id_old;
CREATE TABLE apflora.tpopkontr_idbiotuebereinst_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.tpopkontr_idbiotuebereinst_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopkontr_idbiotuebereinst_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopkontr_idbiotuebereinst_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.tpopkontr_typ_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.tpopkontr_typ_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopkontr_typ_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopkontr_typ_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.tpopkontrzaehl (
id_old integer,
anzahl integer,
einheit integer,
methode integer,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
tpopkontr_id uuid
);
COMMENT ON COLUMN apflora.tpopkontrzaehl.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.tpopkontrzaehl.anzahl IS 'Anzahl Zaehleinheiten';
COMMENT ON COLUMN apflora.tpopkontrzaehl.einheit IS 'Verwendete Zaehleinheit. Auswahl aus Tabelle "tpopkontrzaehl_einheit_werte"';
COMMENT ON COLUMN apflora.tpopkontrzaehl.methode IS 'Verwendete Methodik. Auswahl aus Tabelle "tpopkontrzaehl_methode_werte"';
COMMENT ON COLUMN apflora.tpopkontrzaehl.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopkontrzaehl.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
CREATE SEQUENCE apflora."tpopkontrzaehl_TPopKontrZaehlId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."tpopkontrzaehl_TPopKontrZaehlId_seq" OWNED BY apflora.tpopkontrzaehl.id_old;
CREATE TABLE apflora.tpopkontrzaehl_einheit_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.tpopkontrzaehl_einheit_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopkontrzaehl_einheit_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopkontrzaehl_einheit_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.tpopkontrzaehl_methode_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.tpopkontrzaehl_methode_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopkontrzaehl_methode_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopkontrzaehl_methode_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.tpopmassn (
id_old integer,
typ integer,
beschreibung text,
jahr smallint,
datum date,
bemerkungen text,
plan_bezeichnung text,
flaeche integer,
markierung text,
anz_triebe integer,
anz_pflanzen integer,
anz_pflanzstellen integer,
wirtspflanze text,
herkunft_pop text,
sammeldatum character varying(50) DEFAULT NULL::character varying,
form text,
pflanzanordnung text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
tpop_id uuid,
bearbeiter uuid,
plan_vorhanden boolean DEFAULT false
);
COMMENT ON COLUMN apflora.tpopmassn.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.tpopmassn.typ IS 'Typ der Massnahme. Auswahl aus Tabelle "tpopmassn_typ_werte"';
COMMENT ON COLUMN apflora.tpopmassn.beschreibung IS 'Was wurde gemacht? V.a. für Typ "Spezial"';
COMMENT ON COLUMN apflora.tpopmassn.jahr IS 'Jahr, in dem die Massnahme durchgeführt wurde';
COMMENT ON COLUMN apflora.tpopmassn.datum IS 'Datum, an dem die Massnahme durchgeführt wurde';
COMMENT ON COLUMN apflora.tpopmassn.bemerkungen IS 'Bemerkungen zur Massnahme';
COMMENT ON COLUMN apflora.tpopmassn.plan_bezeichnung IS 'Bezeichnung auf dem Plan';
COMMENT ON COLUMN apflora.tpopmassn.flaeche IS 'Fläche der Massnahme bzw. Teilpopulation (m2)';
COMMENT ON COLUMN apflora.tpopmassn.markierung IS 'Markierung der Massnahme bzw. Teilpopulation';
COMMENT ON COLUMN apflora.tpopmassn.anz_triebe IS 'Anzahl angesiedelte Triebe';
COMMENT ON COLUMN apflora.tpopmassn.anz_pflanzen IS 'Anzahl angesiedelte Pflanzen';
COMMENT ON COLUMN apflora.tpopmassn.anz_pflanzstellen IS 'Anzahl Töpfe/Pflanzstellen';
COMMENT ON COLUMN apflora.tpopmassn.wirtspflanze IS 'Wirtspflanze';
COMMENT ON COLUMN apflora.tpopmassn.herkunft_pop IS 'Aus welcher Population stammt das Pflanzenmaterial?';
COMMENT ON COLUMN apflora.tpopmassn.sammeldatum IS 'Datum, an dem die angesiedelten Pflanzen gesammelt wurden';
COMMENT ON COLUMN apflora.tpopmassn.form IS 'Form, Grösse der Ansiedlung';
COMMENT ON COLUMN apflora.tpopmassn.pflanzanordnung IS 'Anordnung der Pflanzung';
COMMENT ON COLUMN apflora.tpopmassn.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopmassn.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopmassn.tpop_id IS 'Zugehörige Teilpopulation. Fremdschlüssel der Tabelle "tpop"';
COMMENT ON COLUMN apflora.tpopmassn.bearbeiter IS 'Zugehöriger Bearbeiter. Fremdschlüssel aus der Tabelle "adresse"';
COMMENT ON COLUMN apflora.tpopmassn.plan_vorhanden IS 'Existiert ein Plan?';
CREATE SEQUENCE apflora."tpopmassn_TPopMassnId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."tpopmassn_TPopMassnId_seq" OWNED BY apflora.tpopmassn.id_old;
CREATE TABLE apflora.tpopmassn_erfbeurt_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.tpopmassn_erfbeurt_werte.text IS 'Wie werden die durchgefuehrten Massnahmen beurteilt?';
COMMENT ON COLUMN apflora.tpopmassn_erfbeurt_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopmassn_erfbeurt_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopmassn_erfbeurt_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.tpopmassn_typ_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
ansiedlung smallint NOT NULL,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.tpopmassn_typ_werte.ansiedlung IS 'Handelt es sich um eine Ansiedlung?';
COMMENT ON COLUMN apflora.tpopmassn_typ_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopmassn_typ_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopmassn_typ_werte.id IS 'Primärschlüssel';
CREATE TABLE apflora.tpopmassnber (
id_old integer,
jahr smallint,
beurteilung integer,
bemerkungen text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
tpop_id uuid
);
COMMENT ON COLUMN apflora.tpopmassnber.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.tpopmassnber.jahr IS 'Jahr, für den der Bericht gilt';
COMMENT ON COLUMN apflora.tpopmassnber.beurteilung IS 'Beurteilung des Erfolgs. Auswahl aus Tabelle "tpopmassn_erfbeurt_werte"';
COMMENT ON COLUMN apflora.tpopmassnber.bemerkungen IS 'Bemerkungen zur Beurteilung';
COMMENT ON COLUMN apflora.tpopmassnber.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopmassnber.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.tpopmassnber.tpop_id IS 'Zugehörige Teilpopulation. Fremdschlüssel der Tabelle "tpop"';
CREATE SEQUENCE apflora."tpopmassnber_TPopMassnBerId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."tpopmassnber_TPopMassnBerId_seq" OWNED BY apflora.tpopmassnber.id_old;
CREATE TABLE apflora."user" (
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
name text,
email text,
role name,
pass text,
CONSTRAINT proper_email CHECK ((email ~* '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$'::text)),
CONSTRAINT user_pass_check CHECK ((length(pass) > 5)),
CONSTRAINT user_role_check CHECK ((length((role)::text) < 512))
);
CREATE TABLE apflora.usermessage (
user_name character varying(30) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
message_id uuid
);
COMMENT ON COLUMN apflora.usermessage.message_id IS 'Zugehörige Nachricht. Fremdschlüssel aus der Tabelle "message"';
CREATE TABLE apflora.ziel (
id_old integer,
typ integer,
jahr smallint DEFAULT 1 NOT NULL,
bezeichnung text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
ap_id uuid
);
COMMENT ON COLUMN apflora.ziel.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.ziel.typ IS 'Typ des Ziels. Z.B. Zwischenziel, Gesamtziel. Auswahl aus Tabelle "ziel_typ_werte"';
COMMENT ON COLUMN apflora.ziel.jahr IS 'In welchem Jahr soll das Ziel erreicht werden?';
COMMENT ON COLUMN apflora.ziel.bezeichnung IS 'Textliche Beschreibung des Ziels';
COMMENT ON COLUMN apflora.ziel.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ziel.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ziel.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.ziel.ap_id IS 'Zugehöriger Aktionsplan. Fremdschlüssel aus der Tabelle "ap"';
CREATE TABLE apflora.ziel_typ_werte (
code integer,
text character varying(50) DEFAULT NULL::character varying,
sort smallint,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true) NOT NULL,
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL
);
COMMENT ON COLUMN apflora.ziel_typ_werte.text IS 'Beschreibung des Ziels';
COMMENT ON COLUMN apflora.ziel_typ_werte.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ziel_typ_werte.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.ziel_typ_werte.id IS 'Primärschlüssel';
CREATE VIEW apflora.v_abper_ziel AS
SELECT ziel.id_old,
ziel.typ,
ziel.jahr,
ziel.bezeichnung,
ziel.changed,
ziel.changed_by,
ziel.id,
ziel.ap_id,
ziel_typ_werte.text AS typ_decodiert
FROM (apflora._variable
JOIN (apflora.ziel
JOIN apflora.ziel_typ_werte ON ((ziel.typ = ziel_typ_werte.code))) ON ((_variable.apber_jahr = ziel.jahr)))
WHERE (ziel.typ = ANY (ARRAY[1, 2, 1170775556]))
ORDER BY ziel_typ_werte.sort, ziel.bezeichnung;
CREATE VIEW apflora.v_ap AS
SELECT ap.id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS bearbeitung,
ap.start_jahr,
ap_umsetzung_werte.text AS umsetzung,
adresse.name AS bearbeiter,
ap.changed,
ap.changed_by
FROM ((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.adresse ON ((ap.bearbeiter = adresse.id)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_ap_anzkontr AS
SELECT ap.id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS bearbeitung,
ap.start_jahr,
ap_umsetzung_werte.text AS umsetzung,
count(tpopkontr.id) AS anzahl_kontrollen
FROM ((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN ((apflora.pop
LEFT JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
LEFT JOIN apflora.tpopkontr ON ((tpop.id = tpopkontr.tpop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
GROUP BY ap.id, ae_eigenschaften.artname, ap_bearbstand_werte.text, ap.start_jahr, ap_umsetzung_werte.text
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_ap_anzkontrinjahr AS
SELECT ap.id,
ae_eigenschaften.artname,
tpopkontr.id AS tpopkontr_id,
tpopkontr.jahr AS tpopkontr_jahr
FROM ((apflora.ap
JOIN apflora.ae_eigenschaften ON ((ap.art_id = ae_eigenschaften.id)))
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopkontr ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3))
GROUP BY ap.id, ae_eigenschaften.artname, tpopkontr.id, tpopkontr.jahr;
CREATE VIEW apflora.v_ap_anzmassn AS
SELECT ap.id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS bearbeitung,
ap.start_jahr,
ap_umsetzung_werte.text AS umsetzung,
count(tpopmassn.id) AS anzahl_massnahmen
FROM ((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN ((apflora.pop
LEFT JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
LEFT JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
GROUP BY ap.id, ae_eigenschaften.artname, ap_bearbstand_werte.text, ap.start_jahr, ap_umsetzung_werte.text
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_ap_anzmassnprojahr0 AS
SELECT ap.id,
tpopmassn.jahr,
count(tpopmassn.id) AS "AnzahlvonTPopMassnId"
FROM (apflora.ap
JOIN ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY ap.id, tpopmassn.jahr
HAVING (tpopmassn.jahr IS NOT NULL)
ORDER BY ap.id, tpopmassn.jahr;
CREATE VIEW apflora.v_massn_jahre AS
SELECT tpopmassn.jahr
FROM apflora.tpopmassn
GROUP BY tpopmassn.jahr
HAVING ((tpopmassn.jahr >= 1900) AND (tpopmassn.jahr <= 2100))
ORDER BY tpopmassn.jahr;
CREATE VIEW apflora.v_ap_massnjahre AS
SELECT ap.id,
v_massn_jahre.jahr
FROM apflora.ap,
apflora.v_massn_jahre
WHERE (ap.bearbeitung < 4)
ORDER BY ap.id, v_massn_jahre.jahr;
CREATE VIEW apflora.v_ap_anzmassnprojahr AS
SELECT v_ap_massnjahre.id,
v_ap_massnjahre.jahr,
COALESCE(v_ap_anzmassnprojahr0."AnzahlvonTPopMassnId", (0)::bigint) AS anzahl_massnahmen
FROM (apflora.v_ap_massnjahre
LEFT JOIN apflora.v_ap_anzmassnprojahr0 ON (((v_ap_massnjahre.jahr = v_ap_anzmassnprojahr0.jahr) AND (v_ap_massnjahre.id = v_ap_anzmassnprojahr0.id))))
ORDER BY v_ap_massnjahre.id, v_ap_massnjahre.jahr;
CREATE VIEW apflora.v_ap_anzmassnbisjahr AS
SELECT v_ap_massnjahre.id,
v_ap_massnjahre.jahr,
sum(v_ap_anzmassnprojahr.anzahl_massnahmen) AS anzahl_massnahmen
FROM (apflora.v_ap_massnjahre
JOIN apflora.v_ap_anzmassnprojahr ON ((v_ap_massnjahre.id = v_ap_anzmassnprojahr.id)))
WHERE (v_ap_anzmassnprojahr.jahr <= v_ap_massnjahre.jahr)
GROUP BY v_ap_massnjahre.id, v_ap_massnjahre.jahr
ORDER BY v_ap_massnjahre.id, v_ap_massnjahre.jahr;
CREATE VIEW apflora.v_ap_apberrelevant AS
SELECT ap.id
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY ap.id;
CREATE VIEW apflora.v_ap_apberundmassn AS
SELECT ap.id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS bearbeitung,
ap.start_jahr,
ap_umsetzung_werte.text AS umsetzung,
adresse.name AS bearbeiter,
ae_eigenschaften.artwert,
v_ap_anzmassnprojahr.jahr AS massn_jahr,
v_ap_anzmassnprojahr.anzahl_massnahmen AS massn_anzahl,
v_ap_anzmassnbisjahr.anzahl_massnahmen AS massn_anzahl_bisher,
CASE
WHEN (apber.jahr > 0) THEN 'ja'::text
ELSE 'nein'::text
END AS bericht_erstellt
FROM (apflora.ae_eigenschaften
JOIN ((((apflora.ap
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.adresse ON ((ap.bearbeiter = adresse.id)))
JOIN (apflora.v_ap_anzmassnprojahr
JOIN (apflora.v_ap_anzmassnbisjahr
LEFT JOIN apflora.apber ON (((v_ap_anzmassnbisjahr.jahr = apber.jahr) AND (v_ap_anzmassnbisjahr.id = apber.ap_id)))) ON (((v_ap_anzmassnprojahr.jahr = v_ap_anzmassnbisjahr.jahr) AND (v_ap_anzmassnprojahr.id = v_ap_anzmassnbisjahr.id)))) ON ((ap.id = v_ap_anzmassnprojahr.id))) ON ((ae_eigenschaften.id = ap.art_id)))
ORDER BY ae_eigenschaften.artname, v_ap_anzmassnprojahr.jahr;
CREATE VIEW apflora.v_ap_mitmassninjahr0 AS
SELECT ae_eigenschaften.artname,
pop.nr AS pop_nr,
pop.name AS pop_name,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
tpopmassn.jahr,
tpopmassn_typ_werte.text AS typ,
tpopmassn.beschreibung,
tpopmassn.datum,
adresse.name AS bearbeiter,
tpopmassn.bemerkungen,
tpopmassn.plan_vorhanden,
tpopmassn.plan_bezeichnung,
tpopmassn.flaeche,
tpopmassn.markierung,
tpopmassn.anz_triebe,
tpopmassn.anz_pflanzen,
tpopmassn.anz_pflanzstellen,
tpopmassn.wirtspflanze,
tpopmassn.herkunft_pop,
tpopmassn.sammeldatum,
tpopmassn.form,
tpopmassn.pflanzanordnung
FROM ((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN ((apflora.tpopmassn
JOIN apflora.tpopmassn_typ_werte ON ((tpopmassn.typ = tpopmassn_typ_werte.code)))
LEFT JOIN apflora.adresse ON ((tpopmassn.bearbeiter = adresse.id))) ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3))
ORDER BY ae_eigenschaften.artname, pop.nr, pop.name, tpop.nr, tpop.gemeinde, tpop.flurname;
CREATE VIEW apflora.v_ap_ohnepop AS
SELECT ap.id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS bearbeitung,
ap.start_jahr,
ap_umsetzung_werte.text AS umsetzung,
adresse.name AS bearbeiter,
pop.id AS pop_id
FROM (((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.adresse ON ((ap.bearbeiter = adresse.id)))
LEFT JOIN apflora.pop ON ((ap.id = pop.ap_id)))
WHERE (pop.id IS NULL)
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_ap_tpopmassnjahr0 AS
SELECT ap.id,
ae_eigenschaften.artname,
tpopmassn.id AS tpopmassn_id,
tpopmassn.jahr AS tpopmassn_jahr
FROM ((apflora.ap
JOIN apflora.ae_eigenschaften ON ((ap.art_id = ae_eigenschaften.id)))
JOIN ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3))
GROUP BY ap.id, ae_eigenschaften.artname, tpopmassn.id, tpopmassn.jahr;
CREATE VIEW apflora.v_apbeob AS
SELECT beob.id_old,
beob.id_field,
beob.art_id_old,
beob.datum,
beob.autor,
beob.x,
beob.y,
beob.data,
beob.id,
beob.art_id,
beob.tpop_id,
beob.nicht_zuordnen,
beob.bemerkungen,
beob.changed,
beob.changed_by,
beob.quelle_id,
apart.ap_id,
beob_quelle_werte.name AS quelle
FROM ((apflora.beob
JOIN apflora.apart ON ((apart.art_id = beob.art_id)))
JOIN apflora.beob_quelle_werte ON ((beob_quelle_werte.id = beob.quelle_id)))
ORDER BY beob.datum DESC;
CREATE VIEW apflora.v_apber AS
SELECT ae_eigenschaften.artname,
apber.id_old,
apber.jahr,
apber.situation,
apber.vergleich_vorjahr_gesamtziel,
apber.beurteilung,
apber.veraenderung_zum_vorjahr,
apber.apber_analyse,
apber.konsequenzen_umsetzung,
apber.konsequenzen_erfolgskontrolle,
apber.biotope_neue,
apber.biotope_optimieren,
apber.massnahmen_optimieren,
apber.wirkung_auf_art,
apber.datum,
apber.changed,
apber.changed_by,
apber.massnahmen_ap_bearb,
apber.massnahmen_planung_vs_ausfuehrung,
apber.id,
apber.ap_id,
apber.bearbeiter,
ap_erfkrit_werte.text AS beurteilung_decodiert,
adresse.name AS bearbeiter_decodiert
FROM ((apflora.ap
JOIN apflora.ae_eigenschaften ON ((ap.art_id = ae_eigenschaften.id)))
JOIN ((apflora.apber
LEFT JOIN apflora.ap_erfkrit_werte ON ((apber.beurteilung = ap_erfkrit_werte.code)))
LEFT JOIN apflora.adresse ON ((apber.bearbeiter = adresse.id))) ON ((ap.id = apber.ap_id)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_a10lpop AS
SELECT pop.ap_id,
pop.id
FROM (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE (pop.status = 300)
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_a10ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE (tpop.status = 300)
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_a2lpop AS
SELECT pop.ap_id,
pop.id
FROM (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((pop.status = 100) AND (tpop.apber_relevant = 1))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_a2ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((pop.status <> 300) AND (tpop.status = 100) AND (tpop.apber_relevant = 1))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_a3lpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.ap ON ((pop.ap_id = ap.id)))
WHERE ((pop.status = ANY (ARRAY[200, 210])) AND (tpop.apber_relevant = 1) AND ((pop.bekannt_seit < ap.start_jahr) OR (pop.bekannt_seit IS NULL) OR (ap.start_jahr IS NULL)))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_a3ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((pop.ap_id = ap.id)))
WHERE ((pop.status <> 300) AND (tpop.status = ANY (ARRAY[200, 210])) AND (tpop.apber_relevant = 1) AND ((tpop.bekannt_seit < ap.start_jahr) OR (tpop.bekannt_seit IS NULL) OR (ap.start_jahr IS NULL)))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_a4lpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.ap ON ((pop.ap_id = ap.id)))
WHERE ((pop.status = ANY (ARRAY[200, 210])) AND (tpop.apber_relevant = 1) AND (pop.bekannt_seit >= ap.start_jahr))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_a4ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((pop.ap_id = ap.id)))
WHERE ((pop.status <> 300) AND (tpop.status = ANY (ARRAY[200, 210])) AND (tpop.apber_relevant = 1) AND (tpop.bekannt_seit >= ap.start_jahr))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_a5lpop AS
SELECT pop.ap_id,
pop.id
FROM (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((pop.status = 201) AND (tpop.apber_relevant = 1))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_a5ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((tpop.status = 201) AND (tpop.apber_relevant = 1))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_a8lpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.ap ON ((pop.ap_id = ap.id)))
WHERE (((pop.status = 101) OR ((pop.status = 211) AND ((pop.bekannt_seit < ap.start_jahr) OR (pop.bekannt_seit IS NULL) OR (ap.start_jahr IS NULL)))) AND (tpop.apber_relevant = 1))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_a8ltpop AS
SELECT pop.ap_id,
tpop.id
FROM ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.ap ON ((pop.ap_id = ap.id)))
WHERE ((pop.status <> 300) AND ((tpop.status = 101) OR ((tpop.status = 211) AND ((tpop.bekannt_seit < ap.start_jahr) OR (tpop.bekannt_seit IS NULL) OR (ap.start_jahr IS NULL)))) AND (tpop.apber_relevant = 1))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_a9lpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.ap ON ((pop.ap_id = ap.id)))
WHERE ((pop.status = ANY (ARRAY[202, 211])) AND (tpop.apber_relevant = 1) AND (pop.bekannt_seit >= ap.start_jahr))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_a9ltpop AS
SELECT pop.ap_id,
tpop.id
FROM ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.ap ON ((pop.ap_id = ap.id)))
WHERE ((pop.status <> 300) AND (tpop.status = ANY (ARRAY[202, 211])) AND (tpop.apber_relevant = 1) AND (tpop.bekannt_seit >= ap.start_jahr))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_b1lpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.pop
JOIN (apflora.popber
JOIN apflora._variable ON ((popber.jahr = _variable.apber_jahr))) ON ((pop.id = popber.pop_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b1ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopber
JOIN apflora._variable ON ((tpopber.jahr = _variable.apber_jahr))) ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status <> 300) AND (tpop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_b1rpop AS
SELECT pop.ap_id,
pop.id
FROM apflora._variable,
((apflora.pop
JOIN apflora.popber ON ((pop.id = popber.pop_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status <> 300) AND (popber.jahr <= _variable.apber_jahr) AND (popber.entwicklung = ANY (ARRAY[1, 2, 3, 4, 8])))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b1rtpop AS
SELECT pop.ap_id,
tpopber.tpop_id
FROM apflora._variable,
(apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopber ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status <> 300) AND (tpop.status <> 300) AND (tpopber.jahr <= _variable.apber_jahr) AND (tpopber.entwicklung = ANY (ARRAY[1, 2, 3, 4, 8])))
GROUP BY pop.ap_id, tpopber.tpop_id;
CREATE VIEW apflora.v_apber_b2lpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.pop
JOIN (apflora.popber
JOIN apflora._variable ON ((popber.jahr = _variable.apber_jahr))) ON ((pop.id = popber.pop_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((popber.entwicklung = 3) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b2ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopber
JOIN apflora._variable ON ((tpopber.jahr = _variable.apber_jahr))) ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id)))
WHERE ((tpopber.entwicklung = 3) AND (tpop.apber_relevant = 1) AND (pop.status <> 300) AND (tpop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_pop_letzterpopber0 AS
SELECT pop.ap_id,
pop.id,
popber.jahr
FROM apflora._variable,
((apflora.pop
JOIN apflora.popber ON ((pop.id = popber.pop_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((popber.jahr <= _variable.apber_jahr) AND (tpop.apber_relevant = 1) AND (pop.status <> 300));
CREATE VIEW apflora.v_pop_letzterpopber AS
SELECT v_pop_letzterpopber0.ap_id,
v_pop_letzterpopber0.id,
max(v_pop_letzterpopber0.jahr) AS jahr
FROM apflora.v_pop_letzterpopber0
GROUP BY v_pop_letzterpopber0.ap_id, v_pop_letzterpopber0.id;
CREATE VIEW apflora.v_apber_b2rpop AS
SELECT pop.ap_id,
pop.id
FROM (((apflora.v_pop_letzterpopber
JOIN apflora.pop ON ((v_pop_letzterpopber.ap_id = pop.ap_id)))
JOIN apflora.popber ON (((pop.id = popber.pop_id) AND (v_pop_letzterpopber.id = popber.pop_id) AND (v_pop_letzterpopber.jahr = popber.jahr))))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((popber.entwicklung = 3) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_tpop_letztertpopber0 AS
SELECT pop.ap_id,
tpop.id,
tpopber.jahr AS tpopber_jahr
FROM apflora._variable,
(apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopber ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopber.jahr <= _variable.apber_jahr) AND (tpop.apber_relevant = 1) AND (pop.status <> 300));
CREATE VIEW apflora.v_tpop_letztertpopber AS
SELECT v_tpop_letztertpopber0.ap_id,
v_tpop_letztertpopber0.id,
max(v_tpop_letztertpopber0.tpopber_jahr) AS jahr
FROM apflora.v_tpop_letztertpopber0
GROUP BY v_tpop_letztertpopber0.ap_id, v_tpop_letztertpopber0.id;
CREATE VIEW apflora.v_apber_b2rtpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.tpop
JOIN (apflora.tpopber
JOIN (apflora.pop
JOIN apflora.v_tpop_letztertpopber ON ((pop.ap_id = v_tpop_letztertpopber.ap_id))) ON (((tpopber.tpop_id = v_tpop_letztertpopber.id) AND (tpopber.jahr = v_tpop_letztertpopber.jahr)))) ON (((tpop.pop_id = pop.id) AND (tpop.id = tpopber.tpop_id))))
WHERE ((tpopber.entwicklung = 3) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_b3lpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.pop
JOIN (apflora.popber
JOIN apflora._variable ON ((popber.jahr = _variable.apber_jahr))) ON ((pop.id = popber.pop_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((popber.entwicklung = 2) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b3ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopber
JOIN apflora._variable ON ((tpopber.jahr = _variable.apber_jahr))) ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id)))
WHERE ((tpopber.entwicklung = 2) AND (tpop.apber_relevant = 1) AND (pop.status <> 300) AND (tpop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_b3rpop AS
SELECT pop.ap_id,
pop.id
FROM (((apflora.v_pop_letzterpopber
JOIN apflora.pop ON ((v_pop_letzterpopber.ap_id = pop.ap_id)))
JOIN apflora.popber ON (((pop.id = popber.pop_id) AND (v_pop_letzterpopber.id = popber.pop_id) AND (v_pop_letzterpopber.jahr = popber.jahr))))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((popber.entwicklung = 2) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b3rtpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.tpop
JOIN (apflora.tpopber
JOIN (apflora.pop
JOIN apflora.v_tpop_letztertpopber ON ((pop.ap_id = v_tpop_letztertpopber.ap_id))) ON (((tpopber.tpop_id = v_tpop_letztertpopber.id) AND (tpopber.jahr = v_tpop_letztertpopber.jahr)))) ON (((tpop.pop_id = pop.id) AND (tpop.id = tpopber.tpop_id))))
WHERE ((tpopber.entwicklung = 2) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_b4lpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.pop
JOIN (apflora.popber
JOIN apflora._variable ON ((popber.jahr = _variable.apber_jahr))) ON ((pop.id = popber.pop_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((popber.entwicklung = 1) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b4ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopber
JOIN apflora._variable ON ((tpopber.jahr = _variable.apber_jahr))) ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id)))
WHERE ((tpopber.entwicklung = 1) AND (tpop.apber_relevant = 1) AND (pop.status <> 300) AND (tpop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_b4rpop AS
SELECT pop.ap_id,
pop.id
FROM (((apflora.v_pop_letzterpopber
JOIN apflora.pop ON ((v_pop_letzterpopber.ap_id = pop.ap_id)))
JOIN apflora.popber ON (((pop.id = popber.pop_id) AND (v_pop_letzterpopber.id = popber.pop_id) AND (v_pop_letzterpopber.jahr = popber.jahr))))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((popber.entwicklung = 1) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b4rtpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.tpop
JOIN (apflora.tpopber
JOIN (apflora.pop
JOIN apflora.v_tpop_letztertpopber ON ((pop.ap_id = v_tpop_letztertpopber.ap_id))) ON (((tpopber.tpop_id = v_tpop_letztertpopber.id) AND (tpopber.jahr = v_tpop_letztertpopber.jahr)))) ON (((tpop.pop_id = pop.id) AND (tpop.id = tpopber.tpop_id))))
WHERE ((tpopber.entwicklung = 1) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_b5lpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.pop
JOIN (apflora.popber
JOIN apflora._variable ON ((popber.jahr = _variable.apber_jahr))) ON ((pop.id = popber.pop_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((popber.entwicklung = 4) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b5ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopber
JOIN apflora._variable ON ((tpopber.jahr = _variable.apber_jahr))) ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id)))
WHERE ((tpopber.entwicklung = 4) AND (tpop.apber_relevant = 1) AND (pop.status <> 300) AND (tpop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_b5rpop AS
SELECT pop.ap_id,
pop.id
FROM (((apflora.v_pop_letzterpopber
JOIN apflora.pop ON ((v_pop_letzterpopber.ap_id = pop.ap_id)))
JOIN apflora.popber ON (((pop.id = popber.pop_id) AND (v_pop_letzterpopber.id = popber.pop_id) AND (v_pop_letzterpopber.jahr = popber.jahr))))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE (((popber.entwicklung = 4) OR (popber.entwicklung = 9)) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b5rtpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.tpop
JOIN (apflora.tpopber
JOIN (apflora.pop
JOIN apflora.v_tpop_letztertpopber ON ((pop.ap_id = v_tpop_letztertpopber.ap_id))) ON (((tpopber.tpop_id = v_tpop_letztertpopber.id) AND (tpopber.jahr = v_tpop_letztertpopber.jahr)))) ON (((tpop.pop_id = pop.id) AND (tpop.id = tpopber.tpop_id))))
WHERE ((tpopber.entwicklung = 4) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_b6lpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.pop
JOIN (apflora.popber
JOIN apflora._variable ON ((popber.jahr = _variable.apber_jahr))) ON ((pop.id = popber.pop_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((popber.entwicklung = 8) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b6ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopber
JOIN apflora._variable ON ((tpopber.jahr = _variable.apber_jahr))) ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id)))
WHERE ((tpopber.entwicklung = 8) AND (tpop.apber_relevant = 1) AND (pop.status <> 300) AND (tpop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_b6rpop AS
SELECT pop.ap_id,
pop.id
FROM (((apflora.v_pop_letzterpopber
JOIN apflora.pop ON ((v_pop_letzterpopber.ap_id = pop.ap_id)))
JOIN apflora.popber ON (((pop.id = popber.pop_id) AND (v_pop_letzterpopber.id = popber.pop_id) AND (v_pop_letzterpopber.jahr = popber.jahr))))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((popber.entwicklung = 8) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b6rtpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.tpop
JOIN (apflora.tpopber
JOIN (apflora.pop
JOIN apflora.v_tpop_letztertpopber ON ((pop.ap_id = v_tpop_letztertpopber.ap_id))) ON (((tpopber.tpop_id = v_tpop_letztertpopber.id) AND (tpopber.jahr = v_tpop_letztertpopber.jahr)))) ON (((tpop.pop_id = pop.id) AND (tpop.id = tpopber.tpop_id))))
WHERE ((tpopber.entwicklung = 8) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_b7lpop AS
SELECT pop.ap_id,
pop.id
FROM (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_b7ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status <> 300) AND (tpop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_c1lpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN (apflora.tpopmassn
JOIN apflora._variable ON ((tpopmassn.jahr = _variable.apber_jahr))) ON ((tpop.id = tpopmassn.tpop_id)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_c1ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
JOIN apflora._variable ON ((tpopmassn.jahr = _variable.apber_jahr)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status <> 300) AND (tpop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_c1rpop AS
SELECT pop.ap_id,
pop.id
FROM apflora._variable,
((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
WHERE ((tpopmassn.jahr <= _variable.apber_jahr) AND (tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_c1rtpop AS
SELECT pop.ap_id,
tpop.id
FROM apflora._variable,
((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
WHERE ((tpopmassn.jahr <= _variable.apber_jahr) AND (tpop.apber_relevant = 1) AND (pop.status <> 300) AND (tpop.status <> 300))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_pop_letztermassnber0 AS
SELECT pop.ap_id,
pop.id,
popmassnber.jahr
FROM apflora._variable,
(((apflora.pop
JOIN apflora.popmassnber ON ((pop.id = popmassnber.pop_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
WHERE ((popmassnber.jahr <= _variable.apber_jahr) AND (tpop.apber_relevant = 1) AND (tpopmassn.jahr <= _variable.apber_jahr) AND (pop.status <> 300));
CREATE VIEW apflora.v_pop_letztermassnber AS
SELECT v_pop_letztermassnber0.ap_id,
v_pop_letztermassnber0.id,
max(v_pop_letztermassnber0.jahr) AS jahr
FROM apflora.v_pop_letztermassnber0
GROUP BY v_pop_letztermassnber0.ap_id, v_pop_letztermassnber0.id;
CREATE VIEW apflora.v_apber_c3rpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.v_pop_letztermassnber
JOIN apflora.pop ON ((v_pop_letztermassnber.ap_id = pop.ap_id)))
JOIN apflora.popmassnber ON (((pop.id = popmassnber.pop_id) AND (v_pop_letztermassnber.jahr = popmassnber.jahr) AND (v_pop_letztermassnber.id = popmassnber.pop_id))))
WHERE (popmassnber.beurteilung = 1)
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_tpop_letztermassnber0 AS
SELECT pop.ap_id,
tpop.id,
tpopmassnber.jahr
FROM apflora._variable,
(((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.tpopmassnber ON ((tpop.id = tpopmassnber.tpop_id)))
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
WHERE ((tpopmassnber.jahr <= _variable.apber_jahr) AND (tpop.apber_relevant = 1) AND (tpopmassn.jahr <= _variable.apber_jahr) AND (pop.status <> 300) AND ((tpopmassnber.beurteilung >= 1) AND (tpopmassnber.beurteilung <= 5)));
CREATE VIEW apflora.v_tpop_letztermassnber AS
SELECT v_tpop_letztermassnber0.ap_id,
v_tpop_letztermassnber0.id,
max(v_tpop_letztermassnber0.jahr) AS jahr
FROM apflora.v_tpop_letztermassnber0
GROUP BY v_tpop_letztermassnber0.ap_id, v_tpop_letztermassnber0.id;
CREATE VIEW apflora.v_apber_c3rtpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN ((apflora.v_tpop_letztermassnber
JOIN apflora.tpopmassnber ON (((v_tpop_letztermassnber.id = tpopmassnber.tpop_id) AND (v_tpop_letztermassnber.jahr = tpopmassnber.jahr))))
JOIN apflora.tpop ON ((tpopmassnber.tpop_id = tpop.id))) ON ((pop.id = tpop.pop_id)))
WHERE (tpopmassnber.beurteilung = 1)
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_c4rpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.v_pop_letztermassnber
JOIN apflora.pop ON ((v_pop_letztermassnber.ap_id = pop.ap_id)))
JOIN apflora.popmassnber ON (((pop.id = popmassnber.pop_id) AND (v_pop_letztermassnber.jahr = popmassnber.jahr) AND (v_pop_letztermassnber.id = popmassnber.pop_id))))
WHERE (popmassnber.beurteilung = 2)
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_c4rtpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN ((apflora.v_tpop_letztermassnber
JOIN apflora.tpopmassnber ON (((v_tpop_letztermassnber.id = tpopmassnber.tpop_id) AND (v_tpop_letztermassnber.jahr = tpopmassnber.jahr))))
JOIN apflora.tpop ON ((tpopmassnber.tpop_id = tpop.id))) ON ((pop.id = tpop.pop_id)))
WHERE (tpopmassnber.beurteilung = 2)
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_c5rpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.v_pop_letztermassnber
JOIN apflora.pop ON ((v_pop_letztermassnber.ap_id = pop.ap_id)))
JOIN apflora.popmassnber ON (((pop.id = popmassnber.pop_id) AND (v_pop_letztermassnber.jahr = popmassnber.jahr) AND (v_pop_letztermassnber.id = popmassnber.pop_id))))
WHERE (popmassnber.beurteilung = 3)
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_c5rtpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN ((apflora.v_tpop_letztermassnber
JOIN apflora.tpopmassnber ON (((v_tpop_letztermassnber.id = tpopmassnber.tpop_id) AND (v_tpop_letztermassnber.jahr = tpopmassnber.jahr))))
JOIN apflora.tpop ON ((tpopmassnber.tpop_id = tpop.id))) ON ((pop.id = tpop.pop_id)))
WHERE (tpopmassnber.beurteilung = 3)
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_c6rpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.v_pop_letztermassnber
JOIN apflora.pop ON ((v_pop_letztermassnber.ap_id = pop.ap_id)))
JOIN apflora.popmassnber ON (((pop.id = popmassnber.pop_id) AND (v_pop_letztermassnber.id = popmassnber.pop_id) AND (v_pop_letztermassnber.jahr = popmassnber.jahr))))
WHERE (popmassnber.beurteilung = 4)
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_c6rtpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN ((apflora.v_tpop_letztermassnber
JOIN apflora.tpopmassnber ON (((v_tpop_letztermassnber.id = tpopmassnber.tpop_id) AND (v_tpop_letztermassnber.jahr = tpopmassnber.jahr))))
JOIN apflora.tpop ON ((tpopmassnber.tpop_id = tpop.id))) ON ((pop.id = tpop.pop_id)))
WHERE (tpopmassnber.beurteilung = 4)
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_apber_c7rpop AS
SELECT pop.ap_id,
pop.id
FROM ((apflora.v_pop_letztermassnber
JOIN apflora.pop ON ((v_pop_letztermassnber.ap_id = pop.ap_id)))
JOIN apflora.popmassnber ON (((pop.id = popmassnber.pop_id) AND (v_pop_letztermassnber.id = popmassnber.pop_id) AND (v_pop_letztermassnber.jahr = popmassnber.jahr))))
WHERE (popmassnber.beurteilung = 5)
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apber_c7rtpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN ((apflora.v_tpop_letztermassnber
JOIN apflora.tpopmassnber ON (((v_tpop_letztermassnber.id = tpopmassnber.tpop_id) AND (v_tpop_letztermassnber.jahr = tpopmassnber.jahr))))
JOIN apflora.tpop ON ((tpopmassnber.tpop_id = tpop.id))) ON ((pop.id = tpop.pop_id)))
WHERE (tpopmassnber.beurteilung = 5)
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_erstemassnproap AS
SELECT ap.id AS ap_id,
min(tpopmassn.jahr) AS jahr
FROM (((apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
GROUP BY ap.id;
CREATE VIEW apflora.v_apber_injahr AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
apber.id,
concat(adresse.name, ', ', adresse.adresse) AS bearbeiter,
apberuebersicht.jahr AS apberuebersicht_jahr,
apberuebersicht.bemerkungen,
v_erstemassnproap.jahr AS jahr_erste_massnahme
FROM ((apflora.ae_eigenschaften
JOIN (apflora.ap
LEFT JOIN apflora.v_erstemassnproap ON ((ap.id = v_erstemassnproap.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (((apflora.apber
LEFT JOIN apflora.adresse ON ((apber.bearbeiter = adresse.id)))
LEFT JOIN apflora.apberuebersicht ON ((apber.jahr = apberuebersicht.jahr)))
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id)))
WHERE (ap.bearbeitung < 4)
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_pop_uebersicht AS
SELECT ap.id,
ae_eigenschaften.artname AS "Art",
( SELECT count(*) AS count
FROM apflora.pop pop_1
WHERE ((pop_1.ap_id = ae_eigenschaften.id) AND (pop_1.status = 100) AND (pop_1.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE (tpop.apber_relevant = 1))))) AS "aktuellUrspruenglich",
( SELECT count(*) AS count
FROM apflora.pop pop_1
WHERE ((pop_1.ap_id = ae_eigenschaften.id) AND (pop_1.status = ANY (ARRAY[200, 210])) AND (pop_1.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE (tpop.apber_relevant = 1))))) AS "aktuellAngesiedelt",
( SELECT count(*) AS count
FROM apflora.pop pop_1
WHERE ((pop_1.ap_id = ae_eigenschaften.id) AND (pop_1.status = ANY (ARRAY[100, 200, 210])) AND (pop_1.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE (tpop.apber_relevant = 1))))) AS aktuell
FROM (apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
WHERE ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3))
GROUP BY ap.id, ae_eigenschaften.id, ae_eigenschaften.artname
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_uebe AS
SELECT apber.id_old,
apber.jahr,
apber.situation,
apber.vergleich_vorjahr_gesamtziel,
apber.beurteilung,
apber.veraenderung_zum_vorjahr,
apber.apber_analyse,
apber.konsequenzen_umsetzung,
apber.konsequenzen_erfolgskontrolle,
apber.biotope_neue,
apber.biotope_optimieren,
apber.massnahmen_optimieren,
apber.wirkung_auf_art,
apber.datum,
apber.changed,
apber.changed_by,
apber.massnahmen_ap_bearb,
apber.massnahmen_planung_vs_ausfuehrung,
apber.id,
apber.ap_id,
apber.bearbeiter,
ae_eigenschaften.artname,
v_ap_anzmassnbisjahr.anzahl_massnahmen
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora._variable
JOIN (apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id))) ON ((_variable.apber_jahr = apber.jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND (apber.beurteilung = 1) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_uebe_apid AS
SELECT ap.id
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora._variable
JOIN (apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id))) ON ((_variable.apber_jahr = apber.jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND (apber.beurteilung = 1) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)));
CREATE VIEW apflora.v_apber_uebkm AS
SELECT ae_eigenschaften.artname,
CASE
WHEN (ae_eigenschaften.kefart = true) THEN 'Ja'::text
ELSE ''::text
END AS "FnsKefArt2",
CASE
WHEN (round((((_variable.apber_jahr - ae_eigenschaften.kefkontrolljahr) / 4))::numeric, 0) = (((_variable.apber_jahr - ae_eigenschaften.kefkontrolljahr) / 4))::numeric) THEN 'Ja'::text
ELSE ''::text
END AS "FnsKefKontrJahr2"
FROM ((apflora.ae_eigenschaften
JOIN ((apflora.v_ap_anzmassnbisjahr "vApAnzMassnBisJahr_1"
JOIN apflora.ap ON (("vApAnzMassnBisJahr_1".id = ap.id)))
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora.apber
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON (((_variable.apber_jahr = "vApAnzMassnBisJahr_1".jahr) AND (ap.id = apber.ap_id))))
WHERE ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3) AND ("vApAnzMassnBisJahr_1".anzahl_massnahmen = '0'::numeric))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_uebma AS
SELECT ae_eigenschaften.artname,
v_ap_anzmassnbisjahr.anzahl_massnahmen
FROM (apflora._variable
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN apflora.v_ap_anzmassnbisjahr ON ((ap.id = v_ap_anzmassnbisjahr.id))) ON ((_variable.apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_uebma_apid AS
SELECT ap.id
FROM (apflora._variable
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN apflora.v_ap_anzmassnbisjahr ON ((ap.id = v_ap_anzmassnbisjahr.id))) ON ((_variable.apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)));
CREATE VIEW apflora.v_apber_uebme AS
SELECT apber.id_old,
apber.jahr,
apber.situation,
apber.vergleich_vorjahr_gesamtziel,
apber.beurteilung,
apber.veraenderung_zum_vorjahr,
apber.apber_analyse,
apber.konsequenzen_umsetzung,
apber.konsequenzen_erfolgskontrolle,
apber.biotope_neue,
apber.biotope_optimieren,
apber.massnahmen_optimieren,
apber.wirkung_auf_art,
apber.datum,
apber.changed,
apber.changed_by,
apber.massnahmen_ap_bearb,
apber.massnahmen_planung_vs_ausfuehrung,
apber.id,
apber.ap_id,
apber.bearbeiter,
ae_eigenschaften.artname
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id)))
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((apber.beurteilung = 5) AND (v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_uebme_apid AS
SELECT ap.id
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id)))
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((apber.beurteilung = 5) AND (v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)));
CREATE VIEW apflora.v_apber_uebne_apid AS
SELECT ap.id
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id)))
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((apber.beurteilung = 3) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)) AND (v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric));
CREATE VIEW apflora.v_apber_uebse_apid AS
SELECT ap.id
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id)))
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((apber.beurteilung = 4) AND (v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)));
CREATE VIEW apflora.v_apber_uebun_apid AS
SELECT ap.id
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id)))
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((apber.beurteilung = 1168274204) AND (v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)));
CREATE VIEW apflora.v_apber_uebwe_apid AS
SELECT ap.id
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id)))
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((apber.beurteilung = 6) AND (v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)));
CREATE VIEW apflora.v_apber_uebnb AS
SELECT ap.id,
ae_eigenschaften.artname
FROM (apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
WHERE ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3) AND (NOT (ap.id IN ( SELECT v_apber_uebse_apid.id
FROM apflora.v_apber_uebse_apid))) AND (NOT (ap.id IN ( SELECT v_apber_uebe_apid.id
FROM apflora.v_apber_uebe_apid))) AND (NOT (ap.id IN ( SELECT v_apber_uebme_apid.id
FROM apflora.v_apber_uebme_apid))) AND (NOT (ap.id IN ( SELECT v_apber_uebwe_apid.id
FROM apflora.v_apber_uebwe_apid))) AND (NOT (ap.id IN ( SELECT v_apber_uebne_apid.id
FROM apflora.v_apber_uebne_apid))) AND (NOT (ap.id IN ( SELECT v_apber_uebun_apid.id
FROM apflora.v_apber_uebun_apid))) AND (ap.id IN ( SELECT v_apber_uebma_apid.id
FROM apflora.v_apber_uebma_apid)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_uebnb00 AS
SELECT ap.id,
apber.jahr
FROM (apflora._variable "tblKonstanten_1"
JOIN (((apflora.ap
JOIN apflora.v_ap_anzmassnbisjahr ON ((ap.id = v_ap_anzmassnbisjahr.id)))
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id)))
JOIN (apflora.apber
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3) AND (apber.beurteilung IS NULL));
CREATE VIEW apflora.v_apber_uebnb000 AS
SELECT ap.id,
apber.jahr
FROM ((((apflora.ap
JOIN apflora.v_ap_anzmassnbisjahr ON ((ap.id = v_ap_anzmassnbisjahr.id)))
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id)))
LEFT JOIN apflora.apber ON ((ap.id = apber.ap_id)))
JOIN apflora._variable ON ((v_ap_anzmassnbisjahr.jahr = _variable.apber_jahr)))
WHERE ((apber.ap_id IS NULL) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)));
CREATE VIEW apflora.v_apber_uebnb0 AS
SELECT v_apber_uebnb000.id,
v_apber_uebnb000.jahr
FROM apflora.v_apber_uebnb000
UNION
SELECT v_apber_uebnb00.id,
v_apber_uebnb00.jahr
FROM apflora.v_apber_uebnb00;
CREATE VIEW apflora.v_apber_uebne AS
SELECT apber.id_old,
apber.jahr,
apber.situation,
apber.vergleich_vorjahr_gesamtziel,
apber.beurteilung,
apber.veraenderung_zum_vorjahr,
apber.apber_analyse,
apber.konsequenzen_umsetzung,
apber.konsequenzen_erfolgskontrolle,
apber.biotope_neue,
apber.biotope_optimieren,
apber.massnahmen_optimieren,
apber.wirkung_auf_art,
apber.datum,
apber.changed,
apber.changed_by,
apber.massnahmen_ap_bearb,
apber.massnahmen_planung_vs_ausfuehrung,
apber.id,
apber.ap_id,
apber.bearbeiter,
ae_eigenschaften.artname
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id)))
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((apber.beurteilung = 3) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)) AND (v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_uebse AS
SELECT apber.id_old,
apber.jahr,
apber.situation,
apber.vergleich_vorjahr_gesamtziel,
apber.beurteilung,
apber.veraenderung_zum_vorjahr,
apber.apber_analyse,
apber.konsequenzen_umsetzung,
apber.konsequenzen_erfolgskontrolle,
apber.biotope_neue,
apber.biotope_optimieren,
apber.massnahmen_optimieren,
apber.wirkung_auf_art,
apber.datum,
apber.changed,
apber.changed_by,
apber.massnahmen_ap_bearb,
apber.massnahmen_planung_vs_ausfuehrung,
apber.id,
apber.ap_id,
apber.bearbeiter,
ae_eigenschaften.artname
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id)))
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((apber.beurteilung = 4) AND (v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_uebun AS
SELECT apber.id_old,
apber.jahr,
apber.situation,
apber.vergleich_vorjahr_gesamtziel,
apber.beurteilung,
apber.veraenderung_zum_vorjahr,
apber.apber_analyse,
apber.konsequenzen_umsetzung,
apber.konsequenzen_erfolgskontrolle,
apber.biotope_neue,
apber.biotope_optimieren,
apber.massnahmen_optimieren,
apber.wirkung_auf_art,
apber.datum,
apber.changed,
apber.changed_by,
apber.massnahmen_ap_bearb,
apber.massnahmen_planung_vs_ausfuehrung,
apber.id,
apber.ap_id,
apber.bearbeiter,
ae_eigenschaften.artname
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id)))
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((apber.beurteilung = 1168274204) AND (v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_uebwe AS
SELECT apber.id_old,
apber.jahr,
apber.situation,
apber.vergleich_vorjahr_gesamtziel,
apber.beurteilung,
apber.veraenderung_zum_vorjahr,
apber.apber_analyse,
apber.konsequenzen_umsetzung,
apber.konsequenzen_erfolgskontrolle,
apber.biotope_neue,
apber.biotope_optimieren,
apber.massnahmen_optimieren,
apber.wirkung_auf_art,
apber.datum,
apber.changed,
apber.changed_by,
apber.massnahmen_ap_bearb,
apber.massnahmen_planung_vs_ausfuehrung,
apber.id,
apber.ap_id,
apber.bearbeiter,
ae_eigenschaften.artname
FROM (apflora._variable "tblKonstanten_1"
JOIN ((apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.apber
JOIN apflora.v_ap_anzmassnbisjahr ON ((apber.ap_id = v_ap_anzmassnbisjahr.id)))
JOIN apflora._variable ON ((apber.jahr = _variable.apber_jahr))) ON ((ap.id = apber.ap_id))) ON (("tblKonstanten_1".apber_jahr = v_ap_anzmassnbisjahr.jahr)))
WHERE ((apber.beurteilung = 6) AND (v_ap_anzmassnbisjahr.anzahl_massnahmen > (0)::numeric) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_uet01 AS
SELECT ap.id,
ae_eigenschaften.artname,
CASE
WHEN (NOT (ap.id IN ( SELECT v_apber_uebma_apid.id
FROM apflora.v_apber_uebma_apid))) THEN 1
ELSE 0
END AS "keineMassnahmen",
CASE
WHEN (ae_eigenschaften.kefart = true) THEN 1
ELSE 0
END AS "FnsKefArt",
CASE
WHEN (round((((_variable.apber_jahr - ae_eigenschaften.kefkontrolljahr) / 4))::numeric, 0) = (((_variable.apber_jahr - ae_eigenschaften.kefkontrolljahr) / 4))::numeric) THEN 1
ELSE 0
END AS "FnsKefKontrJahr"
FROM (apflora.ae_eigenschaften
JOIN ((apflora.ap
JOIN (apflora.v_ap_anzmassnbisjahr
JOIN apflora._variable ON ((v_ap_anzmassnbisjahr.jahr = _variable.apber_jahr))) ON ((ap.id = v_ap_anzmassnbisjahr.id)))
JOIN apflora.v_ap_apberrelevant ON ((ap.id = v_ap_apberrelevant.id))) ON ((ae_eigenschaften.id = ap.art_id)))
WHERE ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_apber_uet_veraengegenvorjahr AS
SELECT ap.id,
apber.veraenderung_zum_vorjahr,
apber.jahr
FROM (apflora.ap
LEFT JOIN apflora.apber ON ((ap.id = apber.ap_id)))
WHERE ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3) AND ((apber.jahr IN ( SELECT _variable.apber_jahr
FROM apflora._variable)) OR (apber.jahr IS NULL)));
CREATE TABLE apflora.zielber (
id_old integer,
jahr smallint,
erreichung text,
bemerkungen text,
changed date DEFAULT now(),
changed_by character varying(20) DEFAULT current_setting('request.jwt.claim.username'::text, true),
id uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
ziel_id uuid
);
COMMENT ON COLUMN apflora.zielber.id_old IS 'frühere id';
COMMENT ON COLUMN apflora.zielber.jahr IS 'Für welches Jahr gilt der Bericht?';
COMMENT ON COLUMN apflora.zielber.erreichung IS 'Beurteilung der Zielerreichung';
COMMENT ON COLUMN apflora.zielber.bemerkungen IS 'Bemerkungen zur Zielerreichung';
COMMENT ON COLUMN apflora.zielber.changed IS 'Wann wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.zielber.changed_by IS 'Von wem wurde der Datensatz zuletzt geändert?';
COMMENT ON COLUMN apflora.zielber.id IS 'Primärschlüssel';
COMMENT ON COLUMN apflora.zielber.ziel_id IS 'Zugehöriges Ziel. Fremdschlüssel aus der Tabelle "ziel"';
CREATE VIEW apflora.v_apber_zielber AS
SELECT zielber.id_old,
zielber.jahr,
zielber.erreichung,
zielber.bemerkungen,
zielber.changed,
zielber.changed_by,
zielber.id,
zielber.ziel_id
FROM (apflora.zielber
JOIN apflora._variable ON ((zielber.jahr = _variable.apber_jahr)));
CREATE VIEW apflora.v_apbera1lpop AS
SELECT pop.ap_id,
pop.id
FROM (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id;
CREATE VIEW apflora.v_apbera1ltpop AS
SELECT pop.ap_id,
tpop.id
FROM (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status IS NOT NULL) AND (pop.status <> 300) AND (tpop.status <> 300) AND (tpop.status IS NOT NULL))
GROUP BY pop.ap_id, tpop.id;
CREATE VIEW apflora.v_assozart AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
adresse.name AS ap_bearbeiter,
assozart.id,
"ArtenDb_Arteigenschaften_1".artname AS artname_assoziiert,
assozart.bemerkungen,
assozart.changed,
assozart.changed_by
FROM (apflora.ae_eigenschaften "ArtenDb_Arteigenschaften_1"
RIGHT JOIN (((((apflora.ae_eigenschaften
RIGHT JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.adresse ON ((ap.bearbeiter = adresse.id)))
RIGHT JOIN apflora.assozart ON ((ap.id = assozart.ap_id))) ON (("ArtenDb_Arteigenschaften_1".id = assozart.ae_id)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_auswapbearbmassninjahr0 AS
SELECT adresse.name AS bearbeiter,
ae_eigenschaften.artname,
pop.nr AS pop_nr,
pop.name AS pop_name,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
tpopmassn.jahr,
tpopmassn_typ_werte.text AS typ,
tpopmassn.beschreibung,
tpopmassn.datum,
tpopmassn.bemerkungen,
tpopmassn.plan_vorhanden,
tpopmassn.plan_bezeichnung,
tpopmassn.flaeche,
tpopmassn.markierung,
tpopmassn.anz_triebe,
tpopmassn.anz_pflanzen,
tpopmassn.anz_pflanzstellen,
tpopmassn.wirtspflanze,
tpopmassn.herkunft_pop,
tpopmassn.sammeldatum,
tpopmassn.form,
tpopmassn.pflanzanordnung
FROM ((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN ((apflora.tpopmassn
LEFT JOIN apflora.adresse ON ((tpopmassn.bearbeiter = adresse.id)))
JOIN apflora.tpopmassn_typ_werte ON ((tpopmassn.typ = tpopmassn_typ_werte.code))) ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3))
ORDER BY adresse.name, ae_eigenschaften.artname, pop.nr, pop.name, tpop.nr, tpop.gemeinde, tpop.flurname;
CREATE VIEW apflora.v_beob AS
SELECT beob.id,
beob_quelle_werte.name AS quelle,
beob.id_field,
(beob.data ->> (( SELECT beob_1.id_field
FROM apflora.beob beob_1
WHERE (beob_1.id = beob2.id)))::text) AS "OriginalId",
beob.art_id,
ae_eigenschaften.artname AS "Artname",
pop.id AS pop_id,
pop.nr AS pop_nr,
tpop.id AS tpop_id,
tpop.nr AS tpop_nr,
beob.x,
beob.y,
CASE
WHEN ((beob.x > 0) AND (tpop.x > 0) AND (beob.y > 0) AND (tpop.y > 0)) THEN round(sqrt((power(((beob.x - tpop.x))::double precision, (2)::double precision) + power(((beob.y - tpop.y))::double precision, (2)::double precision))))
ELSE NULL::double precision
END AS distanz_zur_teilpopulation,
beob.datum,
beob.autor,
beob.nicht_zuordnen,
beob.bemerkungen,
beob.changed,
beob.changed_by
FROM (((((apflora.beob
JOIN apflora.beob beob2 ON ((beob2.id = beob.id)))
JOIN (apflora.ae_eigenschaften
JOIN apflora.ap ON ((ap.art_id = ae_eigenschaften.id))) ON ((beob.art_id = ae_eigenschaften.id)))
JOIN apflora.beob_quelle_werte ON ((beob.quelle_id = beob_quelle_werte.id)))
LEFT JOIN apflora.tpop ON ((tpop.id = beob.tpop_id)))
LEFT JOIN apflora.pop ON ((pop.id = tpop.pop_id)))
WHERE (ae_eigenschaften.taxid > 150)
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, beob.datum DESC;
CREATE VIEW apflora.v_beob__mit_data AS
SELECT beob.id,
beob_quelle_werte.name AS quelle,
beob.id_field,
(beob.data ->> (( SELECT beob_1.id_field
FROM apflora.beob beob_1
WHERE (beob_1.id = beob2.id)))::text) AS "OriginalId",
beob.art_id,
ae_eigenschaften.artname AS "Artname",
pop.id AS pop_id,
pop.nr AS pop_nr,
tpop.id AS tpop_id,
tpop.nr AS tpop_nr,
beob.x,
beob.y,
CASE
WHEN ((beob.x > 0) AND (tpop.x > 0) AND (beob.y > 0) AND (tpop.y > 0)) THEN round(sqrt((power(((beob.x - tpop.x))::double precision, (2)::double precision) + power(((beob.y - tpop.y))::double precision, (2)::double precision))))
ELSE NULL::double precision
END AS "Distanz zur Teilpopulation (m)",
beob.datum,
beob.autor,
beob.nicht_zuordnen,
beob.bemerkungen,
beob.changed,
beob.changed_by,
beob.data AS "Originaldaten"
FROM (((((apflora.beob
JOIN apflora.beob beob2 ON ((beob2.id = beob.id)))
JOIN (apflora.ae_eigenschaften
JOIN apflora.ap ON ((ap.art_id = ae_eigenschaften.id))) ON ((beob.art_id = ae_eigenschaften.id)))
JOIN apflora.beob_quelle_werte ON ((beob.quelle_id = beob_quelle_werte.id)))
LEFT JOIN apflora.tpop ON ((tpop.id = beob.tpop_id)))
LEFT JOIN apflora.pop ON ((pop.id = tpop.pop_id)))
WHERE (ae_eigenschaften.taxid > 150)
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, beob.datum DESC;
CREATE VIEW apflora.v_ber AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
adresse.name AS ap_bearbeiter,
ber.id,
ber.autor,
ber.jahr,
ber.titel,
ber.url,
ber.changed,
ber.changed_by
FROM (((((apflora.ae_eigenschaften
RIGHT JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.adresse ON ((ap.bearbeiter = adresse.id)))
RIGHT JOIN apflora.ber ON ((ap.id = ber.ap_id)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_bertpopfuerangezeigteap0 AS
SELECT ap.id AS ap_id,
pop.id AS pop_id,
tpop.id AS tpop_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
tpop.x AS tpop_x,
tpop.y AS tpop_y,
tpop.bekannt_seit AS tpop_bekannt_seit,
pop_status_werte_2.text AS tpop_status,
tpop.apber_relevant
FROM (((((apflora.ae_eigenschaften
JOIN ((apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.pop_status_werte pop_status_werte_2 ON ((tpop.status = pop_status_werte_2.code)));
CREATE VIEW apflora.v_datenstruktur AS
SELECT tables.table_schema AS "Tabelle: Schema",
tables.table_name AS "Tabelle: Name",
public.dsql2((((('select count(*) from "'::text || (tables.table_schema)::text) || '"."'::text) || (tables.table_name)::text) || '"'::text)) AS "Tabelle: Anzahl Datensaetze",
columns.column_name AS "Feld: Name",
columns.column_default AS "Feld: Standardwert",
columns.data_type AS "Feld: Datentyp",
columns.is_nullable AS "Feld: Nullwerte"
FROM (information_schema.tables
JOIN information_schema.columns ON ((((tables.table_name)::text = (columns.table_name)::text) AND ((tables.table_schema)::text = (columns.table_schema)::text))))
WHERE ((tables.table_schema)::text = 'apflora'::text)
ORDER BY tables.table_schema, tables.table_name, columns.column_name;
CREATE VIEW apflora.v_erfkrit AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
adresse.name AS ap_bearbeiter,
erfkrit.id,
ap_erfkrit_werte.text AS beurteilung,
erfkrit.kriterien,
erfkrit.changed,
erfkrit.changed_by
FROM ((((((apflora.ae_eigenschaften
RIGHT JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.adresse ON ((ap.bearbeiter = adresse.id)))
RIGHT JOIN apflora.erfkrit ON ((ap.id = erfkrit.ap_id)))
LEFT JOIN apflora.ap_erfkrit_werte ON ((erfkrit.erfolg = ap_erfkrit_werte.code)))
ORDER BY ae_eigenschaften.artname;
CREATE VIEW apflora.v_exportevab_beob AS
SELECT
NULL::uuid AS "fkZeitpunkt",
NULL::uuid AS "idBeobachtung",
NULL::uuid AS fkautor,
NULL::uuid AS fkart,
NULL::integer AS fkartgruppe,
NULL::integer AS fkaa1,
NULL::integer AS "fkAAINTRODUIT",
NULL::integer AS "fkAAPRESENCE",
NULL::text AS "MENACES",
NULL::text AS "VITALITE_PLANTE",
NULL::text AS "STATION",
NULL::text AS "ABONDANCE",
NULL::text AS "EXPERTISE_INTRODUIT",
NULL::text AS "EXPERTISE_INTRODUITE_NOM";
CREATE VIEW apflora.v_tpopkontr_maxanzahl AS
SELECT tpopkontr.id,
max(tpopkontrzaehl.anzahl) AS anzahl
FROM (apflora.tpopkontr
JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id)))
GROUP BY tpopkontr.id
ORDER BY tpopkontr.id;
CREATE VIEW apflora.v_exportevab_projekt AS
SELECT ap.id AS "idProjekt",
concat('AP Flora ZH: ', ae_eigenschaften.artname) AS "Name",
CASE
WHEN (ap.start_jahr IS NOT NULL) THEN concat('01.01.', ap.start_jahr)
ELSE to_char((('now'::text)::date)::timestamp with time zone, 'DD.MM.YYYY'::text)
END AS "Eroeffnung",
'7c71b8af-df3e-4844-a83b-55735f80b993'::uuid AS "fkAutor",
concat('Aktionsplan: ', ap_bearbstand_werte.text,
CASE
WHEN (ap.start_jahr IS NOT NULL) THEN concat('; Start im Jahr: ', ap.start_jahr)
ELSE ''::text
END,
CASE
WHEN (ap.umsetzung IS NOT NULL) THEN concat('; Stand Umsetzung: ', ap_umsetzung_werte.text)
ELSE ''::text
END, '') AS "Bemerkungen"
FROM ((((apflora.ap
JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
JOIN apflora.ae_eigenschaften ON ((ap.art_id = ae_eigenschaften.id)))
JOIN ((apflora.pop
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
JOIN (apflora.tpop
JOIN ((apflora.tpopkontr
JOIN apflora.v_tpopkontr_maxanzahl ON ((v_tpopkontr_maxanzahl.id = tpopkontr.id)))
LEFT JOIN apflora.adresse ON ((tpopkontr.bearbeiter = adresse.id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((ae_eigenschaften.taxid > 150) AND (ae_eigenschaften.taxid < 1000000) AND (tpop.x IS NOT NULL) AND (tpop.y IS NOT NULL) AND ((tpopkontr.typ)::text = ANY (ARRAY[('Ausgangszustand'::character varying)::text, ('Zwischenbeurteilung'::character varying)::text, ('Freiwilligen-Erfolgskontrolle'::character varying)::text])) AND (tpop.status <> 201) AND (tpopkontr.bearbeiter IS NOT NULL) AND (tpopkontr.bearbeiter <> 'a1146ae4-4e03-4032-8aa8-bc46ba02f468'::uuid) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.jahr)::double precision <> date_part('year'::text, ('now'::text)::date)) AND (tpop.bekannt_seit IS NOT NULL) AND ((tpop.status = ANY (ARRAY[100, 101])) OR ((tpopkontr.jahr - tpop.bekannt_seit) > 5)) AND (tpop.flurname IS NOT NULL))
GROUP BY ae_eigenschaften.artname, ap.id, ap.start_jahr, ap.umsetzung, ap_bearbstand_werte.text, ap_umsetzung_werte.text;
CREATE VIEW apflora.v_exportevab_raum AS
SELECT ap.id AS "fkProjekt",
pop.id AS "idRaum",
concat(pop.name,
CASE
WHEN (pop.nr IS NOT NULL) THEN concat(' (Nr. ', pop.nr, ')')
ELSE ''::text
END) AS "Name",
to_char((('now'::text)::date)::timestamp with time zone, 'DD.MM.YYYY'::text) AS "Erfassungsdatum",
'7c71b8af-df3e-4844-a83b-55735f80b993'::uuid AS "fkAutor",
CASE
WHEN (pop.status IS NOT NULL) THEN concat('Status: ', "popHerkunft".text,
CASE
WHEN (pop.bekannt_seit IS NOT NULL) THEN concat('; Bekannt seit: ', pop.bekannt_seit)
ELSE ''::text
END)
ELSE ''::text
END AS "Bemerkungen"
FROM ((apflora.ap
JOIN ((apflora.pop
LEFT JOIN apflora.pop_status_werte "popHerkunft" ON ((pop.status = "popHerkunft".code)))
JOIN (apflora.tpop
JOIN ((apflora.tpopkontr
JOIN apflora.v_tpopkontr_maxanzahl ON ((v_tpopkontr_maxanzahl.id = tpopkontr.id)))
LEFT JOIN apflora.adresse ON ((tpopkontr.bearbeiter = adresse.id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
JOIN apflora.ae_eigenschaften ON ((ae_eigenschaften.id = ap.art_id)))
WHERE ((ae_eigenschaften.taxid > 150) AND (ae_eigenschaften.taxid < 1000000) AND (tpop.x IS NOT NULL) AND (tpop.y IS NOT NULL) AND ((tpopkontr.typ)::text = ANY (ARRAY[('Ausgangszustand'::character varying)::text, ('Zwischenbeurteilung'::character varying)::text, ('Freiwilligen-Erfolgskontrolle'::character varying)::text])) AND (tpop.status <> 201) AND (tpopkontr.bearbeiter IS NOT NULL) AND (tpopkontr.bearbeiter <> 'a1146ae4-4e03-4032-8aa8-bc46ba02f468'::uuid) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.jahr)::double precision <> date_part('year'::text, ('now'::text)::date)) AND (tpop.bekannt_seit IS NOT NULL) AND ((tpop.status = ANY (ARRAY[100, 101])) OR ((tpopkontr.jahr - tpop.bekannt_seit) > 5)) AND (tpop.flurname IS NOT NULL) AND (ap.id IN ( SELECT v_exportevab_projekt."idProjekt"
FROM apflora.v_exportevab_projekt)))
GROUP BY ap.id, pop.id, pop.name, pop.nr, pop.status, "popHerkunft".text, pop.bekannt_seit;
CREATE VIEW apflora.v_exportevab_ort AS
SELECT tpop.id AS "TPopGuid",
pop.id AS "fkRaum",
tpop.id AS "idOrt",
"substring"(concat(tpop.flurname,
CASE
WHEN (tpop.nr IS NOT NULL) THEN concat(' (Nr. ', tpop.nr, ')')
ELSE ''::text
END), 1, 40) AS "Name",
to_char((('now'::text)::date)::timestamp with time zone, 'DD.MM.YYYY'::text) AS "Erfassungsdatum",
'7c71b8af-df3e-4844-a83b-55735f80b993'::uuid AS "fkAutor",
("substring"(max((evab_typologie."TYPO")::text), 1, 9))::character varying(10) AS "fkLebensraumtyp",
1 AS "fkGenauigkeitLage",
1 AS "fkGeometryType",
CASE
WHEN (tpop.hoehe IS NOT NULL) THEN (tpop.hoehe)::integer
ELSE 0
END AS "obergrenzeHoehe",
4 AS "fkGenauigkeitHoehe",
tpop.x AS "X",
tpop.y AS "Y",
"substring"(tpop.gemeinde, 1, 25) AS "NOM_COMMUNE",
"substring"(tpop.flurname, 1, 255) AS "DESC_LOCALITE",
max(tpopkontr.lr_umgebung_delarze) AS "ENV",
CASE
WHEN (tpop.status IS NOT NULL) THEN concat('Status: ', pop_status_werte.text,
CASE
WHEN (tpop.bekannt_seit IS NOT NULL) THEN concat('; Bekannt seit: ', tpop.bekannt_seit)
ELSE ''::text
END)
ELSE ''::text
END AS "Bemerkungen"
FROM ((apflora.ap
JOIN (apflora.pop
JOIN ((apflora.tpop
LEFT JOIN apflora.pop_status_werte ON ((tpop.status = pop_status_werte.code)))
JOIN (((apflora.tpopkontr
JOIN apflora.v_tpopkontr_maxanzahl ON ((v_tpopkontr_maxanzahl.id = tpopkontr.id)))
LEFT JOIN apflora.adresse ON ((tpopkontr.bearbeiter = adresse.id)))
LEFT JOIN apflora.evab_typologie ON ((tpopkontr.lr_delarze = (evab_typologie."TYPO")::text))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
JOIN apflora.ae_eigenschaften ON ((ae_eigenschaften.id = ap.art_id)))
WHERE ((ae_eigenschaften.taxid > 150) AND (ae_eigenschaften.taxid < 1000000) AND (tpop.x IS NOT NULL) AND (tpop.y IS NOT NULL) AND ((tpopkontr.typ)::text = ANY (ARRAY[('Ausgangszustand'::character varying)::text, ('Zwischenbeurteilung'::character varying)::text, ('Freiwilligen-Erfolgskontrolle'::character varying)::text])) AND (tpop.status <> 201) AND (tpopkontr.bearbeiter IS NOT NULL) AND (tpopkontr.bearbeiter <> 'a1146ae4-4e03-4032-8aa8-bc46ba02f468'::uuid) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.jahr)::double precision <> date_part('year'::text, ('now'::text)::date)) AND (tpop.bekannt_seit IS NOT NULL) AND ((tpop.status = ANY (ARRAY[100, 101])) OR ((tpopkontr.jahr - tpop.bekannt_seit) > 5)) AND (tpop.flurname IS NOT NULL) AND (ap.id IN ( SELECT v_exportevab_projekt."idProjekt"
FROM apflora.v_exportevab_projekt)) AND (pop.id IN ( SELECT v_exportevab_raum."idRaum"
FROM apflora.v_exportevab_raum)))
GROUP BY pop.id, tpop.id, tpop.nr, tpop.bekannt_seit, tpop.flurname, tpop.status, pop_status_werte.text, tpop.hoehe, tpop.x, tpop.y, tpop.gemeinde;
CREATE VIEW apflora.v_exportevab_zeit AS
SELECT tpop.id AS "fkOrt",
tpopkontr.zeit_id AS "idZeitpunkt",
CASE
WHEN (tpopkontr.datum IS NOT NULL) THEN to_char((tpopkontr.datum)::timestamp with time zone, 'DD.MM.YYYY'::text)
ELSE concat('01.01.', tpopkontr.jahr)
END AS "Datum",
CASE
WHEN (tpopkontr.datum IS NOT NULL) THEN 'T'::character varying(10)
ELSE 'J'::character varying(10)
END AS "fkGenauigkeitDatum",
CASE
WHEN (tpopkontr.datum IS NOT NULL) THEN 'P'::character varying(10)
ELSE 'X'::character varying(10)
END AS "fkGenauigkeitDatumZDSF",
"substring"((tpopkontr.moosschicht)::text, 1, 10) AS "COUV_MOUSSES",
"substring"((tpopkontr.krautschicht)::text, 1, 10) AS "COUV_HERBACEES",
"substring"(tpopkontr.strauchschicht, 1, 10) AS "COUV_BUISSONS",
"substring"((tpopkontr.baumschicht)::text, 1, 10) AS "COUV_ARBRES"
FROM ((apflora.ap
JOIN (apflora.pop
JOIN ((apflora.tpop
LEFT JOIN apflora.pop_status_werte tpop_status_werte ON ((tpop.status = tpop_status_werte.code)))
JOIN ((apflora.tpopkontr
JOIN apflora.v_tpopkontr_maxanzahl ON ((v_tpopkontr_maxanzahl.id = tpopkontr.id)))
LEFT JOIN apflora.adresse ON ((tpopkontr.bearbeiter = adresse.id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
JOIN apflora.ae_eigenschaften ON ((ae_eigenschaften.id = ap.art_id)))
WHERE ((ae_eigenschaften.taxid > 150) AND (ae_eigenschaften.taxid < 1000000) AND (tpop.x IS NOT NULL) AND (tpop.y IS NOT NULL) AND ((tpopkontr.typ)::text = ANY (ARRAY[('Ausgangszustand'::character varying)::text, ('Zwischenbeurteilung'::character varying)::text, ('Freiwilligen-Erfolgskontrolle'::character varying)::text])) AND (tpop.status <> 201) AND (tpopkontr.bearbeiter IS NOT NULL) AND (tpopkontr.bearbeiter <> 'a1146ae4-4e03-4032-8aa8-bc46ba02f468'::uuid) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.jahr)::double precision <> date_part('year'::text, ('now'::text)::date)) AND (tpop.bekannt_seit IS NOT NULL) AND ((tpop.status = ANY (ARRAY[100, 101])) OR ((tpopkontr.jahr - tpop.bekannt_seit) > 5)) AND (tpop.flurname IS NOT NULL) AND (ap.id IN ( SELECT v_exportevab_projekt."idProjekt"
FROM apflora.v_exportevab_projekt)) AND (pop.id IN ( SELECT v_exportevab_raum."idRaum"
FROM apflora.v_exportevab_raum)) AND (tpop.id IN ( SELECT v_exportevab_ort."idOrt"
FROM apflora.v_exportevab_ort)));
CREATE VIEW apflora.v_idealbiotop AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
adresse.name AS ap_bearbeiter,
ap.changed AS ap_changed,
ap.changed_by AS ap_changed_by,
idealbiotop.erstelldatum,
idealbiotop.hoehenlage,
idealbiotop.region,
idealbiotop.exposition,
idealbiotop.besonnung,
idealbiotop.hangneigung,
idealbiotop.boden_typ,
idealbiotop.boden_kalkgehalt,
idealbiotop.boden_durchlaessigkeit,
idealbiotop.boden_humus,
idealbiotop.boden_naehrstoffgehalt,
idealbiotop.wasserhaushalt,
idealbiotop.konkurrenz,
idealbiotop.moosschicht,
idealbiotop.krautschicht,
idealbiotop.strauchschicht,
idealbiotop.baumschicht,
idealbiotop.bemerkungen,
idealbiotop.changed,
idealbiotop.changed_by
FROM (apflora.idealbiotop
LEFT JOIN ((((apflora.ae_eigenschaften
RIGHT JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.adresse ON ((ap.bearbeiter = adresse.id))) ON ((idealbiotop.ap_id = ap.id)))
ORDER BY ae_eigenschaften.artname, idealbiotop.erstelldatum;
CREATE VIEW apflora.v_kontrzaehl_anzproeinheit AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
apflora_adresse_1.name AS ap_bearbeiter,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
tpop.id AS tpop_id,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
tpop_status_werte.text AS tpop_status,
tpop.bekannt_seit AS tpop_bekannt_seit,
tpop.status_unklar AS tpop_status_unklar,
tpop.status_unklar_grund AS tpop_status_unklar_grund,
tpop.x AS tpop_x,
tpop.y AS tpop_y,
tpop.radius AS tpop_radius_m,
tpop.hoehe AS tpop_hoehe,
tpop.exposition AS tpop_exposition,
tpop.klima AS tpop_klima,
tpop.neigung AS tpop_neigung,
tpop.beschreibung AS tpop_beschreibung,
tpop.kataster_nr AS tpop_kataster_nr,
tpop.apber_relevant AS tpop_apber_relevant,
tpop.eigentuemer AS tpop_eigentuemer,
tpop.kontakt AS tpop_kontakt,
tpop.nutzungszone AS tpop_nutzungszone,
tpop.bewirtschafter AS tpop_bewirtschafter,
tpop.bewirtschaftung AS tpop_bewirtschaftung,
tpopkontr.id AS kontr_id,
tpopkontr.jahr AS kontr_jahr,
tpopkontr.datum AS kontr_datum,
tpopkontr_typ_werte.text AS kontr_typ,
adresse.name AS kontr_bearbeiter,
tpopkontr.ueberlebensrate AS kontr_ueberlebensrate,
tpopkontr.vitalitaet AS kontr_vitalitaet,
tpop_entwicklung_werte.text AS kontr_entwicklung,
tpopkontr.ursachen AS kontr_ursachen,
tpopkontr.erfolgsbeurteilung AS kontr_erfolgsbeurteilung,
tpopkontr.umsetzung_aendern AS kontr_umsetzung_aendern,
tpopkontr.kontrolle_aendern AS kontr_kontrolle_aendern,
tpopkontr.bemerkungen AS kontr_bemerkungen,
tpopkontr.lr_delarze AS kontr_lr_delarze,
tpopkontr.lr_umgebung_delarze AS kontr_lr_umgebung_delarze,
tpopkontr.vegetationstyp AS kontr_vegetationstyp,
tpopkontr.konkurrenz AS kontr_konkurrenz,
tpopkontr.moosschicht AS kontr_moosschicht,
tpopkontr.krautschicht AS kontr_krautschicht,
tpopkontr.strauchschicht AS kontr_strauchschicht,
tpopkontr.baumschicht AS kontr_baumschicht,
tpopkontr.boden_typ AS kontr_boden_typ,
tpopkontr.boden_kalkgehalt AS kontr_boden_kalkgehalt,
tpopkontr.boden_durchlaessigkeit AS kontr_boden_durchlaessigkeit,
tpopkontr.boden_humus AS kontr_boden_humus,
tpopkontr.boden_naehrstoffgehalt AS kontr_boden_naehrstoffgehalt,
tpopkontr.boden_abtrag AS kontr_boden_abtrag,
tpopkontr.wasserhaushalt AS kontr_wasserhaushalt,
tpopkontr_idbiotuebereinst_werte.text AS kontr_idealbiotop_uebereinstimmung,
tpopkontr.handlungsbedarf AS kontr_handlungsbedarf,
tpopkontr.flaeche_ueberprueft AS kontr_flaeche_ueberprueft,
tpopkontr.flaeche AS kontr_flaeche,
tpopkontr.plan_vorhanden AS kontr_plan_vorhanden,
tpopkontr.deckung_vegetation AS kontr_deckung_vegetation,
tpopkontr.deckung_nackter_boden AS kontr_deckung_nackter_boden,
tpopkontr.deckung_ap_art AS kontr_deckung_ap_art,
tpopkontr.jungpflanzen_vorhanden AS kontr_jungpflanzen_vorhanden,
tpopkontr.vegetationshoehe_maximum AS kontr_vegetationshoehe_maximum,
tpopkontr.vegetationshoehe_mittel AS kontr_vegetationshoehe_mittel,
tpopkontr.gefaehrdung AS kontr_gefaehrdung,
tpopkontr.changed AS kontr_changed,
tpopkontr.changed_by AS kontr_changed_by,
tpopkontrzaehl.id,
tpopkontrzaehl_einheit_werte.text AS einheit,
tpopkontrzaehl_methode_werte.text AS methode,
tpopkontrzaehl.anzahl
FROM (apflora.ae_eigenschaften
JOIN ((((apflora.ap
LEFT JOIN apflora.adresse apflora_adresse_1 ON ((ap.bearbeiter = apflora_adresse_1.id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
JOIN ((apflora.pop
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
JOIN ((apflora.tpop
LEFT JOIN apflora.pop_status_werte tpop_status_werte ON ((tpop_status_werte.code = tpop.status)))
JOIN (((((apflora.tpopkontr
LEFT JOIN apflora.tpopkontr_idbiotuebereinst_werte ON ((tpopkontr.idealbiotop_uebereinstimmung = tpopkontr_idbiotuebereinst_werte.code)))
LEFT JOIN apflora.tpopkontr_typ_werte ON (((tpopkontr.typ)::text = (tpopkontr_typ_werte.text)::text)))
LEFT JOIN apflora.adresse ON ((tpopkontr.bearbeiter = adresse.id)))
LEFT JOIN apflora.tpop_entwicklung_werte ON ((tpopkontr.entwicklung = tpop_entwicklung_werte.code)))
LEFT JOIN ((apflora.tpopkontrzaehl
LEFT JOIN apflora.tpopkontrzaehl_einheit_werte ON ((tpopkontrzaehl.einheit = tpopkontrzaehl_einheit_werte.code)))
LEFT JOIN apflora.tpopkontrzaehl_methode_werte ON ((tpopkontrzaehl.methode = tpopkontrzaehl_methode_werte.code))) ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
WHERE (ae_eigenschaften.taxid > 150)
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, tpopkontr.jahr, tpopkontr.datum;
CREATE VIEW apflora.v_massn AS
SELECT ap.id AS ap_id,
ae_eigenschaften.familie,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
tpop.id AS tpop_id,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
pop_status_werte_2.text AS tpop_status,
tpop.bekannt_seit AS tpop_bekannt_seit,
tpop.status_unklar AS tpop_status_unklar,
tpop.status_unklar_grund AS tpop_status_unklar_grund,
tpop.x AS tpop_x,
tpop.y AS tpop_y,
tpop.radius AS tpop_radius,
tpop.hoehe AS tpop_hoehe,
tpop.exposition AS tpop_exposition,
tpop.klima AS tpop_klima,
tpop.neigung AS tpop_neigung,
tpop.beschreibung AS tpop_beschreibung,
tpop.kataster_nr AS tpop_kataster_nr,
tpop.apber_relevant AS tpop_apber_relevant,
tpop.eigentuemer AS tpop_eigentuemer,
tpop.kontakt AS tpop_kontakt,
tpop.nutzungszone AS tpop_nutzungszone,
tpop.bewirtschafter AS tpop_bewirtschafter,
tpop.bewirtschaftung AS tpop_bewirtschaftung,
tpopmassn.id,
tpopmassn.jahr,
tpopmassn.datum,
tpopmassn_typ_werte.text AS typ,
tpopmassn.beschreibung,
adresse.name AS bearbeiter,
tpopmassn.bemerkungen,
tpopmassn.plan_vorhanden,
tpopmassn.plan_bezeichnung,
tpopmassn.flaeche,
tpopmassn.form,
tpopmassn.pflanzanordnung,
tpopmassn.markierung,
tpopmassn.anz_triebe,
tpopmassn.anz_pflanzen,
tpopmassn.anz_pflanzstellen,
tpopmassn.wirtspflanze,
tpopmassn.herkunft_pop,
tpopmassn.sammeldatum,
tpopmassn.changed,
tpopmassn.changed_by
FROM (((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN (apflora.tpopmassn
LEFT JOIN apflora.tpopmassn_typ_werte ON ((tpopmassn.typ = tpopmassn_typ_werte.code))) ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.pop_status_werte pop_status_werte_2 ON ((tpop.status = pop_status_werte_2.code)))
LEFT JOIN apflora.adresse ON ((tpopmassn.bearbeiter = adresse.id)))
WHERE (ae_eigenschaften.taxid > 150)
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, tpopmassn.jahr, tpopmassn.datum, tpopmassn_typ_werte.text;
CREATE VIEW apflora.v_massn_fuergis_read AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
(pop.id)::character varying(50) AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.x AS pop_x,
pop.y AS pop_y,
(tpop.id)::character varying(50) AS tpop_id,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
pop_status_werte_2.text AS tpop_status,
tpop.status_unklar AS tpop_status_unklar,
tpop.status_unklar_grund AS tpop_status_unklar_grund,
tpop.x AS tpop_x,
tpop.y AS tpop_y,
tpop.radius AS tpop_radius,
tpop.hoehe AS tpop_hoehe,
tpop.exposition AS tpop_exposition,
tpop.klima AS tpop_klima,
tpop.neigung AS tpop_neigung,
tpop.beschreibung AS tpop_beschreibung,
tpop.kataster_nr AS tpop_kataster_nr,
adresse.name AS tpop_bearbeiter,
tpop.apber_relevant AS tpop_apber_relevant,
tpop.bekannt_seit AS tpop_bekannt_seit,
tpop.eigentuemer AS tpop_eigentuemer,
tpop.kontakt AS tpop_kontakt,
tpop.nutzungszone AS tpop_nutzungszone,
tpop.bewirtschafter AS tpop_bewirtschafter,
tpop.bewirtschaftung AS tpop_bewirtschaftung,
(tpopmassn.id)::character varying(50) AS massn_id,
tpopmassn.jahr AS massn_jahr,
(tpopmassn.datum)::timestamp without time zone AS massn_datum,
tpopmassn_typ_werte.text AS massn_typ,
tpopmassn.beschreibung AS massn_beschreibung,
adresse.name AS massn_bearbeiter,
tpopmassn.plan_vorhanden AS massn_plan_vorhanden,
tpopmassn.plan_bezeichnung AS massn_plan_bezeichnung,
tpopmassn.flaeche AS massn_flaeche,
tpopmassn.form AS massn_form,
tpopmassn.pflanzanordnung AS massn_pflanzanordnung,
tpopmassn.markierung AS massn_markierung,
tpopmassn.anz_triebe AS massn_anz_triebe,
tpopmassn.anz_pflanzen AS massn_anz_pflanzen,
tpopmassn.anz_pflanzstellen AS massn_anz_pflanzstellen,
tpopmassn.wirtspflanze AS massn_wirtspflanze,
tpopmassn.herkunft_pop AS massn_herkunft_pop,
tpopmassn.sammeldatum AS massn_sammeldatum,
(tpopmassn.changed)::timestamp without time zone AS massn_changed,
tpopmassn.changed_by AS massn_changed_by
FROM (((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN (apflora.tpopmassn
LEFT JOIN apflora.tpopmassn_typ_werte ON ((tpopmassn.typ = tpopmassn_typ_werte.code))) ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.pop_status_werte pop_status_werte_2 ON ((tpop.status = pop_status_werte_2.code)))
LEFT JOIN apflora.adresse ON ((tpopmassn.bearbeiter = adresse.id)))
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, tpopmassn.jahr, tpopmassn.datum, tpopmassn_typ_werte.text;
CREATE VIEW apflora.v_massn_fuergis_write AS
SELECT tpopmassn.tpop_id,
(tpopmassn.id)::character varying(50) AS massn_id,
tpopmassn.typ AS massn_typ,
tpopmassn.jahr AS massn_jahr,
(tpopmassn.datum)::timestamp without time zone AS massn_datum,
tpopmassn.bearbeiter AS massn_bearbeiter,
tpopmassn.beschreibung AS massn_beschreibung,
tpopmassn.plan_vorhanden AS massn_plan_vorhanden,
tpopmassn.plan_bezeichnung AS massn_plan_bezeichnung,
tpopmassn.flaeche AS massn_flaeche,
tpopmassn.form AS massn_form,
tpopmassn.pflanzanordnung AS massn_pflanzanordnung,
tpopmassn.markierung AS massn_markierung,
tpopmassn.anz_triebe AS massn_anz_triebe,
tpopmassn.anz_pflanzen AS massn_anz_pflanzen,
tpopmassn.anz_pflanzstellen AS massn_anz_pflanzstellen,
tpopmassn.wirtspflanze AS massn_wirtspflanze,
tpopmassn.herkunft_pop AS massn_herkunft_pop,
tpopmassn.sammeldatum AS massn_sammeldatum,
tpopmassn.bemerkungen AS massn_bemerkungen,
(tpopmassn.changed)::timestamp without time zone AS massn_changed,
tpopmassn.changed_by AS massn_changed_by
FROM apflora.tpopmassn;
CREATE VIEW apflora.v_massn_webgisbun AS
SELECT ap.id AS "APARTID",
ae_eigenschaften.artname AS "APART",
pop.id AS "POPGUID",
pop.nr AS "POPNR",
tpop.id AS "TPOPGUID",
tpop.nr AS "TPOPNR",
tpop.x AS "TPOP_X",
tpop.y AS "TPOP_Y",
pop_status_werte_2.text AS "TPOPSTATUS",
tpopmassn.id AS "MASSNGUID",
tpopmassn.jahr AS "MASSNJAHR",
to_char((tpopmassn.datum)::timestamp with time zone, 'DD.MM.YY'::text) AS "MASSNDAT",
tpopmassn_typ_werte.text AS "MASSTYP",
tpopmassn.beschreibung AS "MASSNMASSNAHME",
adresse.name AS "MASSNBEARBEITER",
(tpopmassn.bemerkungen)::character(1) AS "MASSNBEMERKUNG",
tpopmassn.plan_vorhanden AS "MASSNPLAN",
tpopmassn.plan_bezeichnung AS "MASSPLANBEZ",
tpopmassn.flaeche AS "MASSNFLAECHE",
tpopmassn.form AS "MASSNFORMANSIEDL",
tpopmassn.pflanzanordnung AS "MASSNPFLANZANORDNUNG",
tpopmassn.markierung AS "MASSNMARKIERUNG",
tpopmassn.anz_triebe AS "MASSNANZTRIEBE",
tpopmassn.anz_pflanzen AS "MASSNANZPFLANZEN",
tpopmassn.anz_pflanzstellen AS "MASSNANZPFLANZSTELLEN",
tpopmassn.wirtspflanze AS "MASSNWIRTSPFLANZEN",
tpopmassn.herkunft_pop AS "MASSNHERKUNFTSPOP",
tpopmassn.sammeldatum AS "MASSNSAMMELDAT",
to_char((tpopmassn.changed)::timestamp with time zone, 'DD.MM.YY'::text) AS "MASSNCHANGEDAT",
tpopmassn.changed_by AS "MASSNCHANGEBY"
FROM (((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN (apflora.tpopmassn
LEFT JOIN apflora.tpopmassn_typ_werte ON ((tpopmassn.typ = tpopmassn_typ_werte.code))) ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.pop_status_werte pop_status_werte_2 ON ((tpop.status = pop_status_werte_2.code)))
LEFT JOIN apflora.adresse ON ((tpopmassn.bearbeiter = adresse.id)))
WHERE (ae_eigenschaften.taxid > 150)
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, tpopmassn.jahr, tpopmassn.datum, tpopmassn_typ_werte.text;
CREATE VIEW apflora.v_pop AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id,
pop.nr,
pop.name,
pop_status_werte.text AS status,
pop.bekannt_seit,
pop.status_unklar,
pop.status_unklar_begruendung,
pop.x,
pop.y,
pop.changed,
pop.changed_by
FROM (apflora.ae_eigenschaften
JOIN (((apflora.ap
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
JOIN (apflora.pop
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code))) ON ((ap.id = pop.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
ORDER BY ae_eigenschaften.artname, pop.nr;
CREATE VIEW apflora.v_pop_anzkontr AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id,
pop.nr,
pop.name,
pop_status_werte.text AS status,
pop.bekannt_seit,
pop.status_unklar,
pop.status_unklar_begruendung,
pop.x,
pop.y,
count(tpopkontr.id) AS anzahl_kontrollen
FROM (((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.pop
LEFT JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
LEFT JOIN apflora.tpopkontr ON ((tpop.id = tpopkontr.tpop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
GROUP BY ap.id, ae_eigenschaften.artname, ap_bearbstand_werte.text, ap.start_jahr, ap_umsetzung_werte.text, pop.id, pop.nr, pop.name, pop_status_werte.text, pop.status_unklar, pop.status_unklar_begruendung, pop.bekannt_seit, pop.x, pop.y
ORDER BY ae_eigenschaften.artname, pop.nr;
CREATE VIEW apflora.v_pop_anzmassn AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id,
pop.nr,
pop.name,
pop_status_werte.text AS status,
pop.bekannt_seit,
pop.status_unklar,
pop.status_unklar_begruendung,
pop.x,
pop.y,
count(tpopmassn.id) AS anzahl_massnahmen
FROM (((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN ((apflora.pop
LEFT JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
LEFT JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
GROUP BY ap.id, ae_eigenschaften.artname, ap_bearbstand_werte.text, ap.start_jahr, ap_umsetzung_werte.text, pop.id, pop.nr, pop.name, pop_status_werte.text, pop.status_unklar, pop.status_unklar_begruendung, pop.bekannt_seit, pop.x, pop.y
ORDER BY ae_eigenschaften.artname, pop.nr;
CREATE VIEW apflora.v_tpop_berjahrundmassnjahr AS
SELECT tpop.id,
tpopber.jahr
FROM (apflora.tpop
JOIN apflora.tpopber ON ((tpop.id = tpopber.tpop_id)))
UNION
SELECT tpop.id,
tpopmassnber.jahr
FROM (apflora.tpop
JOIN apflora.tpopmassnber ON ((tpop.id = tpopmassnber.tpop_id)))
ORDER BY 2;
CREATE VIEW apflora.v_pop_berjahrundmassnjahrvontpop AS
SELECT tpop.pop_id,
v_tpop_berjahrundmassnjahr.jahr
FROM (apflora.v_tpop_berjahrundmassnjahr
JOIN apflora.tpop ON ((v_tpop_berjahrundmassnjahr.id = tpop.id)))
GROUP BY tpop.pop_id, v_tpop_berjahrundmassnjahr.jahr;
CREATE VIEW apflora.v_pop_berundmassnjahre AS
SELECT pop.id,
popber.jahr
FROM (apflora.pop
JOIN apflora.popber ON ((pop.id = popber.pop_id)))
UNION
SELECT pop.id,
popmassnber.jahr
FROM (apflora.pop
JOIN apflora.popmassnber ON ((pop.id = popmassnber.pop_id)))
ORDER BY 2;
CREATE VIEW apflora.v_pop_fuergis_read AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
(pop.id)::text AS id,
pop.nr,
pop.name,
pop_status_werte.text AS status,
pop.bekannt_seit,
pop.status_unklar,
pop.status_unklar_begruendung,
pop.x,
pop.y,
(pop.changed)::timestamp without time zone AS changed,
pop.changed_by
FROM (((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
WHERE ((pop.x > 0) AND (pop.y > 0))
ORDER BY ae_eigenschaften.artname, pop.nr;
CREATE VIEW apflora.v_pop_fuergis_write AS
SELECT (pop.ap_id)::text AS ap_id,
(pop.id)::text AS id,
pop.nr,
pop.name,
pop.status,
pop.status_unklar,
pop.status_unklar_begruendung,
pop.bekannt_seit,
pop.x,
pop.y,
(pop.changed)::timestamp without time zone AS changed,
pop.changed_by
FROM apflora.pop;
CREATE VIEW apflora.v_pop_kml AS
SELECT ae_eigenschaften.artname AS "Art",
pop.nr AS "Label",
"substring"(concat('Population: ', pop.nr, ' ', pop.name), 1, 225) AS "Inhalte",
round(((((((2.6779094 + (4.728982 * (((pop.x - 600000))::numeric / (1000000)::numeric))) + ((0.791484 * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric))) + (((0.1306 * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric))) - (((0.0436 * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.x - 600000))::numeric / (1000000)::numeric))) * (100)::numeric) / (36)::numeric), 10) AS "Laengengrad",
round((((((((16.9023892 + (3.238272 * (((pop.y - 200000))::numeric / (1000000)::numeric))) - ((0.270978 * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.x - 600000))::numeric / (1000000)::numeric))) - ((0.002528 * (((pop.y - 200000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric))) - (((0.0447 * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric))) - (((0.014 * (((pop.y - 200000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric))) * (100)::numeric) / (36)::numeric), 10) AS "Breitengrad",
concat('http://www.apflora.ch/Projekte/4635372c-431c-11e8-bb30-e77f6cdd35a6/Aktionspläne/', ap.id, '/Populationen/', pop.id) AS url
FROM (apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
WHERE ((pop.y IS NOT NULL) AND (pop.y IS NOT NULL))
ORDER BY ae_eigenschaften.artname, pop.nr, pop.name;
CREATE VIEW apflora.v_pop_kmlnamen AS
SELECT ae_eigenschaften.artname AS "Art",
concat(ae_eigenschaften.artname, ' ', pop.nr) AS "Label",
"substring"(concat('Population: ', pop.nr, ' ', pop.name), 1, 225) AS "Inhalte",
round(((((((2.6779094 + (4.728982 * (((pop.x - 600000))::numeric / (1000000)::numeric))) + ((0.791484 * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric))) + (((0.1306 * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric))) - (((0.0436 * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.x - 600000))::numeric / (1000000)::numeric))) * (100)::numeric) / (36)::numeric), 10) AS "Laengengrad",
round((((((((16.9023892 + (3.238272 * (((pop.y - 200000))::numeric / (1000000)::numeric))) - ((0.270978 * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.x - 600000))::numeric / (1000000)::numeric))) - ((0.002528 * (((pop.y - 200000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric))) - (((0.0447 * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.x - 600000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric))) - (((0.014 * (((pop.y - 200000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric)) * (((pop.y - 200000))::numeric / (1000000)::numeric))) * (100)::numeric) / (36)::numeric), 10) AS "Breitengrad",
concat('http://www.apflora.ch/Projekte/4635372c-431c-11e8-bb30-e77f6cdd35a6/Aktionspläne/', ap.id, '/Populationen/', pop.id) AS url
FROM (apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
WHERE ((pop.y IS NOT NULL) AND (pop.y IS NOT NULL))
ORDER BY ae_eigenschaften.artname, pop.nr, pop.name;
CREATE VIEW apflora.v_pop_letzterpopber0_overall AS
SELECT popber.pop_id,
max(popber.jahr) AS jahr
FROM apflora.popber
WHERE (popber.jahr IS NOT NULL)
GROUP BY popber.pop_id;
CREATE VIEW apflora.v_pop_letzterpopber_overall AS
SELECT pop.ap_id,
pop.id,
v_pop_letzterpopber0_overall.jahr
FROM ((apflora.pop
JOIN apflora.v_pop_letzterpopber0_overall ON ((pop.id = v_pop_letzterpopber0_overall.pop_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((tpop.apber_relevant = 1) AND (pop.status <> 300))
GROUP BY pop.ap_id, pop.id, v_pop_letzterpopber0_overall.jahr;
CREATE VIEW apflora.v_pop_letzterpopbermassn AS
SELECT popmassnber.pop_id AS id,
max(popmassnber.jahr) AS jahr
FROM apflora.popmassnber
WHERE (popmassnber.jahr IS NOT NULL)
GROUP BY popmassnber.pop_id;
CREATE VIEW apflora.v_pop_massnseitbeginnap AS
SELECT tpopmassn.tpop_id
FROM (apflora.ap
JOIN ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
WHERE (tpopmassn.jahr >= ap.start_jahr)
GROUP BY tpopmassn.tpop_id;
CREATE VIEW apflora.v_pop_mit_letzter_popber AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_status,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
pop.changed AS pop_changed,
pop.changed_by AS pop_changed_by,
popber.id AS popber_id,
popber.jahr AS popber_jahr,
tpop_entwicklung_werte.text AS popber_entwicklung,
popber.bemerkungen AS popber_bemerkungen,
popber.changed AS popber_changed,
popber.changed_by AS popber_changed_by
FROM (apflora.ae_eigenschaften
JOIN (((apflora.ap
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
JOIN ((apflora.pop
LEFT JOIN (apflora.v_pop_letzterpopber0_overall
LEFT JOIN (apflora.popber
LEFT JOIN apflora.tpop_entwicklung_werte ON ((popber.entwicklung = tpop_entwicklung_werte.code))) ON (((v_pop_letzterpopber0_overall.jahr = popber.jahr) AND (v_pop_letzterpopber0_overall.pop_id = popber.pop_id)))) ON ((pop.id = v_pop_letzterpopber0_overall.pop_id)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code))) ON ((ap.id = pop.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
WHERE (ae_eigenschaften.taxid > 150)
ORDER BY ae_eigenschaften.artname, pop.nr, v_pop_letzterpopber0_overall.jahr;
CREATE VIEW apflora.v_pop_mit_letzter_popmassnber AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_status,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
pop.changed AS pop_changed,
pop.changed_by AS pop_changed_by,
popmassnber.id AS popmassnber_id,
popmassnber.jahr AS popmassnber_jahr,
tpopmassn_erfbeurt_werte.text AS popmassnber_entwicklung,
popmassnber.bemerkungen AS popmassnber_bemerkungen,
popmassnber.changed AS popmassnber_changed,
popmassnber.changed_by AS popmassnber_changed_by
FROM (apflora.ae_eigenschaften
JOIN (((apflora.ap
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
JOIN ((apflora.pop
LEFT JOIN (apflora.v_pop_letzterpopbermassn
LEFT JOIN (apflora.popmassnber
LEFT JOIN apflora.tpopmassn_erfbeurt_werte ON ((popmassnber.beurteilung = tpopmassn_erfbeurt_werte.code))) ON (((v_pop_letzterpopbermassn.jahr = popmassnber.jahr) AND (v_pop_letzterpopbermassn.id = popmassnber.pop_id)))) ON ((pop.id = v_pop_letzterpopbermassn.id)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code))) ON ((ap.id = pop.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
WHERE (ae_eigenschaften.taxid > 150)
ORDER BY ae_eigenschaften.artname, pop.nr, v_pop_letzterpopbermassn.jahr;
CREATE VIEW apflora.v_pop_ohnekoord AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id,
pop.nr,
pop.name,
pop_status_werte.text AS status,
pop.bekannt_seit,
pop.status_unklar,
pop.status_unklar_begruendung,
pop.x,
pop.y,
pop.changed,
pop.changed_by
FROM (((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
WHERE ((pop.x IS NULL) OR (pop.y IS NULL))
ORDER BY ae_eigenschaften.artname, pop.nr;
CREATE VIEW apflora.v_pop_popberundmassnber AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
pop.changed AS pop_changed,
pop.changed_by AS pop_changed_by,
v_pop_berundmassnjahre.jahr,
popber.id AS popber_id,
popber.jahr AS popber_jahr,
tpop_entwicklung_werte.text AS popber_entwicklung,
popber.bemerkungen AS popber_bemerkungen,
popber.changed AS popber_changed,
popber.changed_by AS popber_changed_by,
popmassnber.id AS popmassnber_id,
popmassnber.jahr AS popmassnber_jahr,
tpopmassn_erfbeurt_werte.text AS popmassnber_entwicklung,
popmassnber.bemerkungen AS popmassnber_bemerkungen,
popmassnber.changed AS popmassnber_changed,
popmassnber.changed_by AS popmassnber_changed_by
FROM (apflora.ae_eigenschaften
JOIN (((apflora.ap
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
JOIN (((apflora.pop
LEFT JOIN (apflora.v_pop_berundmassnjahre
LEFT JOIN (apflora.popmassnber
LEFT JOIN apflora.tpopmassn_erfbeurt_werte ON ((popmassnber.beurteilung = tpopmassn_erfbeurt_werte.code))) ON (((v_pop_berundmassnjahre.jahr = popmassnber.jahr) AND (v_pop_berundmassnjahre.id = popmassnber.pop_id)))) ON ((pop.id = v_pop_berundmassnjahre.id)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN (apflora.popber
LEFT JOIN apflora.tpop_entwicklung_werte ON ((popber.entwicklung = tpop_entwicklung_werte.code))) ON (((v_pop_berundmassnjahre.jahr = popber.jahr) AND (v_pop_berundmassnjahre.id = popber.pop_id)))) ON ((ap.id = pop.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
WHERE (ae_eigenschaften.taxid > 150)
ORDER BY ae_eigenschaften.artname, pop.nr, v_pop_berundmassnjahre.jahr;
CREATE VIEW apflora.v_pop_vonapohnestatus AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap.bearbeitung AS ap_bearbeitung,
pop.id,
pop.nr,
pop.name,
pop.status
FROM (apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
WHERE ((ap.bearbeitung = 3) AND (pop.status IS NULL))
ORDER BY ae_eigenschaften.artname, pop.nr;
CREATE VIEW apflora.v_popber AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
popber.id,
popber.jahr,
tpop_entwicklung_werte.text AS entwicklung,
popber.bemerkungen,
popber.changed,
popber.changed_by
FROM (((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
JOIN apflora.popber ON ((pop.id = popber.pop_id)))
LEFT JOIN apflora.tpop_entwicklung_werte ON ((popber.entwicklung = tpop_entwicklung_werte.code)))
ORDER BY ae_eigenschaften.artname, pop.nr, popber.jahr, tpop_entwicklung_werte.text;
CREATE VIEW apflora.v_popber_angezapbestjahr0 AS
SELECT ap.id AS ap_id,
pop.id AS pop_id,
popber.id,
ae_eigenschaften.artname AS "Artname",
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS status,
popber.jahr AS "PopBerJahr",
tpop_entwicklung_werte.text AS "PopBerEntwicklung",
popber.bemerkungen AS "PopBerTxt"
FROM (((apflora.ae_eigenschaften
JOIN ((apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
JOIN apflora.popber ON ((pop.id = popber.pop_id))) ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.tpop_entwicklung_werte ON ((popber.entwicklung = tpop_entwicklung_werte.code)));
CREATE VIEW apflora.v_popmassnber AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
pop.changed AS pop_changed,
pop.changed_by AS pop_changed_by,
popmassnber.id,
popmassnber.jahr,
tpopmassn_erfbeurt_werte.text AS beurteilung,
popmassnber.bemerkungen,
popmassnber.changed,
popmassnber.changed_by
FROM (((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
JOIN apflora.popmassnber ON ((pop.id = popmassnber.pop_id)))
LEFT JOIN apflora.tpopmassn_erfbeurt_werte ON ((popmassnber.beurteilung = tpopmassn_erfbeurt_werte.code)))
ORDER BY ae_eigenschaften.artname, pop.nr;
CREATE VIEW apflora.v_popmassnber_anzmassn0 AS
SELECT popmassnber.pop_id,
popmassnber.jahr,
count(tpopmassn.id) AS anzahl_massnahmen
FROM (apflora.popmassnber
JOIN (apflora.tpop
LEFT JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id))) ON ((popmassnber.pop_id = tpop.pop_id)))
WHERE ((tpopmassn.jahr = popmassnber.jahr) OR (tpopmassn.jahr IS NULL))
GROUP BY popmassnber.pop_id, popmassnber.jahr
ORDER BY popmassnber.pop_id, popmassnber.jahr;
CREATE VIEW apflora.v_popmassnber_anzmassn AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_status,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
pop.changed AS pop_changed,
pop.changed_by AS pop_changed_by,
popmassnber.id AS popmassnber_id,
popmassnber.jahr AS popmassnber_jahr,
tpopmassn_erfbeurt_werte.text AS popmassnber_entwicklung,
popmassnber.bemerkungen AS popmassnber_bemerkungen,
popmassnber.changed AS popmassnber_changed,
popmassnber.changed_by AS popmassnber_changed_by,
v_popmassnber_anzmassn0.anzahl_massnahmen
FROM (((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
JOIN (apflora.popmassnber
LEFT JOIN apflora.v_popmassnber_anzmassn0 ON (((v_popmassnber_anzmassn0.pop_id = popmassnber.pop_id) AND (v_popmassnber_anzmassn0.jahr = popmassnber.jahr)))) ON ((pop.id = popmassnber.pop_id)))
LEFT JOIN apflora.tpopmassn_erfbeurt_werte ON ((popmassnber.beurteilung = tpopmassn_erfbeurt_werte.code)))
ORDER BY ae_eigenschaften.artname, pop.nr;
CREATE VIEW apflora.v_q_ziel_ohnejahr AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
ziel.id
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.ziel ON ((ap.id = ziel.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE (ziel.jahr IS NULL)
ORDER BY ziel.id;
CREATE VIEW apflora.v_q_ziel_ohnetyp AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
ziel.id,
ziel.jahr
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.ziel ON ((ap.id = ziel.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE (ziel.typ IS NULL)
ORDER BY ziel.jahr;
CREATE VIEW apflora.v_q_ziel_ohneziel AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
ziel.id,
ziel.jahr
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.ziel ON ((ap.id = ziel.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE (ziel.bezeichnung IS NULL)
ORDER BY ziel.jahr;
CREATE VIEW apflora.v_qk_apber_ohnebeurteilung AS
SELECT ap.proj_id,
ap.id AS ap_id,
'AP-Bericht ohne Beurteilung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'AP-Berichte'::text, (apber.id)::text] AS url,
ARRAY[concat('AP-Bericht (Jahr): ', apber.jahr)] AS text,
apber.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN apflora.apber ON ((ap.id = apber.ap_id)))
WHERE ((apber.beurteilung IS NULL) AND (apber.jahr IS NOT NULL))
ORDER BY apber.jahr;
CREATE VIEW apflora.v_qk_apber_ohnejahr AS
SELECT
NULL::uuid AS proj_id,
NULL::uuid AS ap_id,
NULL::text AS hw,
NULL::text[] AS url,
NULL::text[] AS text;
CREATE VIEW apflora.v_qk_apber_ohnevergleichvorjahrgesamtziel AS
SELECT ap.proj_id,
ap.id AS ap_id,
'AP-Bericht ohne Vergleich Vorjahr - Gesamtziel:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'AP-Berichte'::text, (apber.id)::text] AS url,
ARRAY[concat('AP-Bericht (Jahr): ', apber.jahr)] AS text,
apber.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN apflora.apber ON ((ap.id = apber.ap_id)))
WHERE ((apber.vergleich_vorjahr_gesamtziel IS NULL) AND (apber.jahr IS NOT NULL))
ORDER BY apber.jahr;
CREATE VIEW apflora.v_qk_assozart_ohneart AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Assoziierte Art ohne Art:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'assoziierte-Arten'::text, (assozart.id)::text] AS url,
ARRAY[concat('Assoziierte Art (id): ', assozart.id)] AS text
FROM (apflora.ap
JOIN apflora.assozart ON ((ap.id = assozart.ap_id)))
WHERE (assozart.ae_id IS NULL)
ORDER BY assozart.id;
CREATE VIEW apflora.v_qk_erfkrit_ohnebeurteilung AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Erfolgskriterium ohne Beurteilung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Erfolgskriterien'::text, (erfkrit.id)::text] AS url,
ARRAY[concat('Erfolgskriterium (id): ', erfkrit.id)] AS text
FROM (apflora.ap
JOIN apflora.erfkrit ON ((ap.id = erfkrit.ap_id)))
WHERE (erfkrit.erfolg IS NULL)
ORDER BY erfkrit.id;
CREATE VIEW apflora.v_qk_erfkrit_ohnekriterien AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Erfolgskriterium ohne Kriterien:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Erfolgskriterien'::text, (erfkrit.id)::text] AS url,
ARRAY[concat('Erfolgskriterium (id): ', erfkrit.id)] AS text
FROM (apflora.ap
JOIN apflora.erfkrit ON ((ap.id = erfkrit.ap_id)))
WHERE (erfkrit.kriterien IS NULL)
ORDER BY erfkrit.id;
CREATE VIEW apflora.v_qk_feldkontr_ohnebearb AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Feldkontrolle ohne BearbeiterIn:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Feld-Kontrollen'::text, (tpopkontr.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Kontrolle (id): ', tpopkontr.id)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopkontr ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopkontr.bearbeiter IS NULL) AND ((tpopkontr.typ)::text <> 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY pop.nr, tpop.nr, tpopkontr.id;
CREATE VIEW apflora.v_qk_feldkontr_ohnejahr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Feldkontrolle ohne Jahr:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Feld-Kontrollen'::text, (tpopkontr.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (Jahr): ', tpopkontr.jahr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopkontr ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopkontr.jahr IS NULL) AND ((tpopkontr.typ)::text <> 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY pop.nr, tpop.nr, tpopkontr.jahr;
CREATE VIEW apflora.v_qk_feldkontr_ohnetyp AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Feldkontrolle ohne Typ:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Feld-Kontrollen'::text, (tpopkontr.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (Jahr): ', tpopkontr.jahr)] AS text,
tpopkontr.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopkontr ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (((tpopkontr.typ IS NULL) OR ((tpopkontr.typ)::text = 'Erfolgskontrolle'::text)) AND (tpopkontr.jahr IS NOT NULL))
ORDER BY pop.nr, tpop.nr, tpopkontr.jahr;
CREATE VIEW apflora.v_qk_feldkontr_ohnezaehlung AS
SELECT
NULL::uuid AS proj_id,
NULL::uuid AS ap_id,
NULL::text AS hw,
NULL::text[] AS url,
NULL::text[] AS text,
NULL::smallint AS "Berichtjahr";
CREATE VIEW apflora.v_qk_feldkontrzaehlung_ohneanzahl AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Zaehlung ohne Anzahl (Feldkontrolle):'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Feld-Kontrollen'::text, (tpopkontr.id)::text, 'Zählungen'::text, (tpopkontrzaehl.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (Jahr): ', tpopkontr.jahr), concat('Zählung (id): ', tpopkontrzaehl.id)] AS text,
tpopkontr.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopkontr
JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopkontrzaehl.anzahl IS NULL) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.typ)::text <> 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY pop.nr, tpop.nr, tpopkontr.jahr;
CREATE VIEW apflora.v_qk_feldkontrzaehlung_ohneeinheit AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Zaehlung ohne Zaehleinheit (Feldkontrolle):'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Feld-Kontrollen'::text, (tpopkontr.id)::text, 'Zählungen'::text, (tpopkontrzaehl.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (Jahr): ', tpopkontr.jahr), concat('Zählung (id): ', tpopkontrzaehl.id)] AS text,
tpopkontr.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopkontr
JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopkontrzaehl.einheit IS NULL) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.typ)::text <> 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY pop.nr, tpop.nr, tpopkontr.jahr;
CREATE VIEW apflora.v_qk_feldkontrzaehlung_ohnemethode AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Zaehlung ohne Methode (Feldkontrolle):'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Feld-Kontrollen'::text, (tpopkontr.id)::text, 'Zählungen'::text, (tpopkontrzaehl.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (Jahr): ', tpopkontr.jahr), concat('Zählung (id): ', tpopkontrzaehl.id)] AS text,
tpopkontr.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopkontr
JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopkontrzaehl.methode IS NULL) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.typ)::text <> 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY pop.nr, tpop.nr, tpopkontr.jahr;
CREATE VIEW apflora.v_qk_freiwkontr_ohnebearb AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Freiwilligen-Kontrolle ohne BearbeiterIn:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Freiwilligen-Kontrollen'::text, (tpopkontr.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (id): ', tpopkontr.id)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopkontr ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopkontr.bearbeiter IS NULL) AND ((tpopkontr.typ)::text = 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY ap.id, pop.nr, tpop.nr, tpopkontr.bearbeiter;
CREATE VIEW apflora.v_qk_freiwkontr_ohnejahr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Freiwilligen-Kontrolle ohne Jahr:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Freiwilligen-Kontrollen'::text, (tpopkontr.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (id): ', tpopkontr.id)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopkontr ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopkontr.jahr IS NULL) AND ((tpopkontr.typ)::text = 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY ap.id, pop.nr, tpop.nr, tpopkontr.jahr;
CREATE VIEW apflora.v_qk_freiwkontr_ohnezaehlung AS
SELECT
NULL::uuid AS proj_id,
NULL::uuid AS ap_id,
NULL::text AS hw,
NULL::text[] AS url,
NULL::text[] AS text,
NULL::smallint AS "Berichtjahr";
CREATE VIEW apflora.v_qk_freiwkontrzaehlung_ohneanzahl AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Zaehlung ohne Anzahl (Freiwilligen-Kontrolle):'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Freiwilligen-Kontrollen'::text, (tpopkontr.id)::text, 'Zählungen'::text, (tpopkontrzaehl.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (Jahr): ', tpopkontr.jahr), concat('Zählung (id): ', tpopkontrzaehl.id)] AS text,
tpopkontr.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopkontr
JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopkontrzaehl.anzahl IS NULL) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.typ)::text = 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY pop.nr, tpop.nr, tpopkontr.jahr;
CREATE VIEW apflora.v_qk_freiwkontrzaehlung_ohneeinheit AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Zaehlung ohne Zaehleinheit (Freiwilligen-Kontrolle):'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Freiwilligen-Kontrollen'::text, (tpopkontr.id)::text, 'Zählungen'::text, (tpopkontrzaehl.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (Jahr): ', tpopkontr.jahr), concat('Zählung (id): ', tpopkontrzaehl.id)] AS text,
tpopkontr.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopkontr
JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopkontrzaehl.einheit IS NULL) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.typ)::text = 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY pop.nr, tpop.nr, tpopkontr.jahr;
CREATE VIEW apflora.v_qk_freiwkontrzaehlung_ohnemethode AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Zaehlung ohne Methode (Freiwilligen-Kontrolle):'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Freiwilligen-Kontrollen'::text, (tpopkontr.id)::text, 'Zählungen'::text, (tpopkontrzaehl.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (Jahr): ', tpopkontr.jahr), concat('Zählung (id): ', tpopkontrzaehl.id)] AS text,
tpopkontr.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopkontr
JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopkontrzaehl.methode IS NULL) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.typ)::text = 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY pop.nr, tpop.nr, tpopkontr.jahr;
CREATE VIEW apflora.v_qk_massn_ohnebearb AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Massnahme ohne BearbeiterIn:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Massnahmen'::text, (tpopmassn.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Massnahme (id): ', tpopmassn.id)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (tpopmassn.bearbeiter IS NULL)
ORDER BY ap.id, pop.nr, tpop.nr, tpopmassn.id;
CREATE VIEW apflora.v_qk_massn_ohnejahr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Massnahme ohne Jahr:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Massnahmen'::text, (tpopmassn.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Massnahme: ', tpopmassn.jahr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (tpopmassn.jahr IS NULL)
ORDER BY ap.id, pop.nr, tpop.nr, tpopmassn.id;
CREATE VIEW apflora.v_qk_massn_ohnetyp AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Massnahmen ohne Typ:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Massnahmen'::text, (tpopmassn.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Massnahme (Jahr): ', tpopmassn.jahr)] AS text,
tpopmassn.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopmassn.typ IS NULL) AND (tpopmassn.jahr IS NOT NULL))
ORDER BY pop.nr, tpop.nr, tpopmassn.jahr;
CREATE VIEW apflora.v_qk_massnber_ohneerfbeurt AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Massnahmen-Bericht ohne Entwicklung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Massnahmen-Berichte'::text, (tpopmassnber.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Massnahmen-Bericht (Jahr): ', tpopmassnber.jahr)] AS text,
tpopmassnber.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopmassnber ON ((tpop.id = tpopmassnber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopmassnber.beurteilung IS NULL) AND (tpopmassnber.jahr IS NOT NULL))
ORDER BY pop.nr, tpop.nr, tpopmassnber.jahr;
CREATE VIEW apflora.v_qk_massnber_ohnejahr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Massnahmen-Bericht ohne Jahr:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Massnahmen-Berichte'::text, (tpopmassnber.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Massnahmen-Bericht (Jahr): ', tpopmassnber.jahr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopmassnber ON ((tpop.id = tpopmassnber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (tpopmassnber.jahr IS NULL)
ORDER BY pop.nr, tpop.nr, tpopmassnber.jahr, tpopmassnber.id;
CREATE VIEW apflora.v_qk_pop_koordentsprechenkeinertpop AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
'Population: Koordinaten entsprechen keiner Teilpopulation:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr): ', pop.nr)] AS text,
pop.x AS "XKoord",
pop.y AS "YKoord"
FROM (apflora.ap
JOIN apflora.pop ON ((pop.ap_id = ap.id)))
WHERE ((pop.x IS NOT NULL) AND (pop.y IS NOT NULL) AND (NOT (pop.id IN ( SELECT tpop.pop_id
FROM apflora.tpop
WHERE ((tpop.x = tpop.x) AND (tpop.y = tpop.y))))))
ORDER BY ap.proj_id, pop.ap_id;
CREATE VIEW apflora.v_qk_pop_mit_ber_abnehmend_ohne_tpopber_abnehmend AS
SELECT DISTINCT ap.proj_id,
ap.id AS ap_id,
pop.id AS pop_id,
popber.jahr AS "Berichtjahr",
'Populationen mit Bericht "abnehmend" ohne Teil-Population mit Bericht "abnehmend":'::text AS hw,
ARRAY['Projekte'::text, (ap.proj_id)::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.popber ON ((pop.id = popber.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((popber.entwicklung = 1) AND (NOT (popber.pop_id IN ( SELECT DISTINCT tpop.pop_id
FROM (apflora.tpop
JOIN apflora.tpopber ON ((tpop.id = tpopber.tpop_id)))
WHERE ((tpopber.entwicklung = 1) AND (tpopber.jahr = popber.jahr))))))
ORDER BY ap.proj_id, ap.id, pop.id, popber.jahr;
CREATE VIEW apflora.v_qk_pop_mit_ber_erloschen_ohne_tpopber_erloschen AS
SELECT DISTINCT ap.proj_id,
ap.id AS ap_id,
pop.id AS pop_id,
popber.jahr AS "Berichtjahr",
'Populationen mit Bericht "erloschen" ohne Teil-Population mit Bericht "erloschen":'::text AS hw,
ARRAY['Projekte'::text, (ap.proj_id)::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.popber ON ((pop.id = popber.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((popber.entwicklung = 8) AND (NOT (popber.pop_id IN ( SELECT DISTINCT tpop.pop_id
FROM (apflora.tpop
JOIN apflora.tpopber ON ((tpop.id = tpopber.tpop_id)))
WHERE ((tpopber.entwicklung = 8) AND (tpopber.jahr = popber.jahr))))))
ORDER BY ap.proj_id, ap.id, pop.id, popber.jahr;
CREATE VIEW apflora.v_qk_pop_mit_ber_erloschen_und_tpopber_nicht_erloschen AS
SELECT DISTINCT ap.proj_id,
ap.id AS ap_id,
pop.id AS pop_id,
popber.jahr AS "Berichtjahr",
'Populationen mit Bericht "erloschen" und mindestens einer gemäss Bericht nicht erloschenen Teil-Population:'::text AS hw,
ARRAY['Projekte'::text, (ap.proj_id)::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.popber ON ((pop.id = popber.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((popber.entwicklung = 8) AND (popber.pop_id IN ( SELECT DISTINCT tpop.pop_id
FROM (apflora.tpop
JOIN apflora.tpopber ON ((tpop.id = tpopber.tpop_id)))
WHERE ((tpopber.entwicklung < 8) AND (tpopber.jahr = popber.jahr)))))
ORDER BY ap.proj_id, ap.id, pop.id, popber.jahr;
CREATE VIEW apflora.v_qk_pop_mit_ber_zunehmend_ohne_tpopber_zunehmend AS
SELECT DISTINCT ap.proj_id,
ap.id AS ap_id,
pop.id AS pop_id,
popber.jahr AS "Berichtjahr",
'Populationen mit Bericht "zunehmend" ohne Teil-Population mit Bericht "zunehmend":'::text AS hw,
ARRAY['Projekte'::text, (ap.proj_id)::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.popber ON ((pop.id = popber.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((popber.entwicklung = 3) AND (NOT (popber.pop_id IN ( SELECT DISTINCT tpop.pop_id
FROM (apflora.tpop
JOIN apflora.tpopber ON ((tpop.id = tpopber.tpop_id)))
WHERE ((tpopber.entwicklung = 3) AND (tpopber.jahr = popber.jahr))))))
ORDER BY ap.proj_id, ap.id, pop.id, popber.jahr;
CREATE VIEW apflora.v_qk_pop_mitstatusunklarohnebegruendung AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Population mit "Status unklar", ohne Begruendung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
WHERE ((pop.status_unklar = true) AND (pop.status_unklar_begruendung IS NULL))
ORDER BY ap.id, pop.nr;
CREATE VIEW apflora.v_qk_pop_ohnebekanntseit AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Population ohne "bekannt seit":'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
WHERE (pop.bekannt_seit IS NULL)
ORDER BY ap.id, pop.nr;
CREATE VIEW apflora.v_qk_pop_ohnekoord AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Population: Mindestens eine Koordinate fehlt:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
WHERE ((pop.x IS NULL) OR (pop.y IS NULL))
ORDER BY ap.id, pop.nr;
CREATE VIEW apflora.v_qk_pop_ohnepopname AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Population ohne Name:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population: ', pop.nr)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
WHERE (pop.name IS NULL)
ORDER BY ap.id, pop.nr;
CREATE VIEW apflora.v_qk_pop_ohnepopnr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Population ohne Nr.:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Name): ', pop.name)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
WHERE (pop.nr IS NULL)
ORDER BY ap.id, pop.name;
CREATE VIEW apflora.v_qk_pop_ohnepopstatus AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Population ohne Status:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
WHERE (pop.status IS NULL)
ORDER BY ap.id, pop.nr;
CREATE VIEW apflora.v_qk_pop_ohnetpop AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Population ohne Teilpopulation:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
LEFT JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (tpop.id IS NULL)
ORDER BY ap.id, pop.nr;
CREATE VIEW apflora.v_qk_pop_ohnetpopmitgleichemstatus AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Keine Teil-Population hat den Status der Population:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE (NOT (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE ((tpop.pop_id = pop.id) AND ((tpop.status = pop.status) OR ((tpop.status = 200) AND (pop.status = 210)) OR ((tpop.status = 210) AND (pop.status = 200)) OR ((tpop.status = 202) AND (pop.status = 211)) OR ((tpop.status = 211) AND (pop.status = 202)))))));
CREATE VIEW apflora.v_qk_pop_popnrmehrdeutig AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Die Nr. ist mehrdeutig:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.pop ON ((pop.ap_id = ap.id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.ap_id IN ( SELECT DISTINCT pop_1.ap_id
FROM apflora.pop pop_1
GROUP BY pop_1.ap_id, pop_1.nr
HAVING (count(*) > 1))) AND (pop.nr IN ( SELECT DISTINCT pop_1.nr
FROM apflora.pop pop_1
GROUP BY pop_1.ap_id, pop_1.nr
HAVING (count(*) > 1))))
ORDER BY projekt.id, ap.id, pop.nr;
CREATE VIEW apflora.v_qk_pop_status101tpopstatusanders AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "ursprünglich, erloschen". Es gibt Teil-Populationen (ausser potentiellen Wuchs-/Ansiedlungsorten) mit abweichendem Status:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = 101) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE ((tpop.pop_id = pop.id) AND (tpop.status <> ALL (ARRAY[101, 300]))))));
CREATE VIEW apflora.v_qk_pop_status200tpopstatusunzulaessig AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "angesiedelt nach Beginn AP, aktuell". Es gibt Teil-Populationen mit nicht zulässigen Stati ("ursprünglich", "angesiedelt vor Beginn AP, aktuell"):'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = 200) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE ((tpop.pop_id = pop.id) AND (tpop.status = ANY (ARRAY[100, 101, 210]))))));
CREATE VIEW apflora.v_qk_pop_status201tpopstatusunzulaessig AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "Ansaatversuch". Es gibt Teil-Populationen mit nicht zulässigen Stati ("ursprünglich" oder "angesiedelt, aktuell"):'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = 201) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE ((tpop.pop_id = pop.id) AND (tpop.status = ANY (ARRAY[100, 101, 200, 210]))))));
CREATE VIEW apflora.v_qk_pop_status202tpopstatusanders AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "angesiedelt nach Beginn AP, erloschen/nicht etabliert". Es gibt Teil-Populationen mit abweichendem Status:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = 202) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE ((tpop.pop_id = pop.id) AND (tpop.status <> 202)))));
CREATE VIEW apflora.v_qk_pop_status210tpopstatusunzulaessig AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "angesiedelt vor Beginn AP, aktuell". Es gibt Teil-Populationen mit nicht zulässigen Stati ("ursprünglich"):'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = 210) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE ((tpop.pop_id = pop.id) AND (tpop.status = ANY (ARRAY[100, 101]))))));
CREATE VIEW apflora.v_qk_pop_status211tpopstatusunzulaessig AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "angesiedelt vor Beginn AP, erloschen/nicht etabliert". Es gibt Teil-Populationen mit nicht zulässigen Stati ("ursprünglich", "angesiedelt, aktuell", "Ansaatversuch", "potentieller Wuchsort"):'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = 211) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE ((tpop.pop_id = pop.id) AND (tpop.status = ANY (ARRAY[100, 101, 210, 200, 201, 300]))))));
CREATE VIEW apflora.v_qk_pop_status300tpopstatusanders AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "potentieller Wuchs-/Ansiedlungsort". Es gibt aber Teil-Populationen mit abweichendem Status:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = 300) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE ((tpop.pop_id = pop.id) AND (tpop.status <> 300)))));
CREATE VIEW apflora.v_qk_pop_statusaktuellletzterpopbererloschen AS
WITH lastpopber AS (
SELECT DISTINCT ON (popber.pop_id) popber.pop_id,
popber.jahr,
popber.entwicklung
FROM apflora.popber
WHERE (popber.jahr IS NOT NULL)
ORDER BY popber.pop_id, popber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "aktuell" (ursprünglich oder angesiedelt) oder potentieller Wuchsort; der letzte Populations-Bericht meldet aber "erloschen" und es gab seither keine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN lastpopber ON ((pop.id = lastpopber.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = ANY (ARRAY[100, 200, 210, 300])) AND (lastpopber.entwicklung = 8) AND (NOT (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM (apflora.tpop
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
WHERE ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3) AND (tpopmassn.jahr > lastpopber.jahr))))));
CREATE VIEW apflora.v_qk_pop_statusangesiedeltmittpopurspruenglich AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
'Population: Status ist "angesiedelt", es gibt aber eine Teilpopulation mit Status "urspruenglich":'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr): ', pop.nr)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((pop.ap_id = ap.id)))
WHERE ((pop.status = ANY (ARRAY[200, 201, 202, 210, 211])) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE (tpop.status = 100))));
CREATE VIEW apflora.v_qk_pop_statusansaatversuchalletpoperloschen AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
'Population: Status ist "angesiedelt, Ansaatversuch", alle Teilpopulationen sind gemäss Status erloschen:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr): ', pop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((tpop.pop_id = pop.id))) ON ((pop.ap_id = ap.id)))
WHERE ((pop.status = 201) AND (EXISTS ( SELECT 1
FROM apflora.tpop tpop_1
WHERE ((tpop_1.status = ANY (ARRAY[101, 202, 211])) AND (tpop_1.pop_id = pop.id)))) AND (NOT (EXISTS ( SELECT 1
FROM apflora.tpop tpop_1
WHERE ((tpop_1.status <> ALL (ARRAY[101, 202, 211])) AND (tpop_1.pop_id = pop.id))))));
CREATE VIEW apflora.v_qk_pop_statusansaatversuchmitaktuellentpop AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
'Population: Status ist "angesiedelt, Ansaatversuch", es gibt aber eine aktuelle Teilpopulation oder eine ursprüngliche erloschene:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr): ', pop.nr)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((pop.ap_id = ap.id)))
WHERE ((pop.status = 201) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE (tpop.status = ANY (ARRAY[100, 101, 200, 210])))));
CREATE VIEW apflora.v_qk_pop_statusansaatversuchmittpopursprerloschen AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
'Population: Status ist "angesiedelt, Ansaatversuch", es gibt aber eine Teilpopulation mit Status "urspruenglich, erloschen":'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr): ', pop.nr)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((pop.ap_id = ap.id)))
WHERE ((pop.status = 201) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE (tpop.status = 101))));
CREATE VIEW apflora.v_qk_pop_statuserloschenletzterpopberabnehmend AS
WITH lastpopber AS (
SELECT DISTINCT ON (popber.pop_id) popber.pop_id,
popber.jahr,
popber.entwicklung
FROM apflora.popber
WHERE (popber.jahr IS NOT NULL)
ORDER BY popber.pop_id, popber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "erloschen" (ursprünglich oder angesiedelt), Ansaatversuch oder potentieller Wuchsort; der letzte Populations-Bericht meldet aber "abnehmend" und es gab seither keine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN lastpopber ON ((pop.id = lastpopber.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = ANY (ARRAY[101, 201, 202, 211, 300])) AND (lastpopber.entwicklung = 1) AND (NOT (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM (apflora.tpop
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
WHERE ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3) AND (tpopmassn.jahr > lastpopber.jahr))))));
CREATE VIEW apflora.v_qk_pop_statuserloschenletzterpopberaktuell AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
'Population: Status ist "erloschen", der letzte Populations-Bericht meldet aber "aktuell":'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.ap
JOIN ((apflora.pop
JOIN (apflora.popber
JOIN apflora.v_pop_letzterpopber0_overall ON (((v_pop_letzterpopber0_overall.jahr = popber.jahr) AND (v_pop_letzterpopber0_overall.pop_id = popber.pop_id)))) ON ((popber.pop_id = pop.id)))
JOIN apflora.tpop ON ((tpop.pop_id = pop.id))) ON ((pop.ap_id = ap.id)))
WHERE ((popber.entwicklung < 8) AND (pop.status = ANY (ARRAY[101, 202, 211])) AND (tpop.apber_relevant = 1));
CREATE VIEW apflora.v_qk_pop_statuserloschenletzterpopbererloschenmitansiedlung AS
WITH lastpopber AS (
SELECT DISTINCT ON (popber.pop_id) popber.pop_id,
popber.jahr,
popber.entwicklung
FROM apflora.popber
WHERE (popber.jahr IS NOT NULL)
ORDER BY popber.pop_id, popber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "erloschen" (ursprünglich oder angesiedelt); der letzte Populations-Bericht meldet "erloschen". Seither gab es aber eine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN lastpopber ON ((pop.id = lastpopber.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = ANY (ARRAY[101, 202, 211])) AND (lastpopber.entwicklung = 8) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM (apflora.tpop
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
WHERE ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3) AND (tpopmassn.jahr > lastpopber.jahr)))));
CREATE VIEW apflora.v_qk_pop_statuserloschenletzterpopberstabil AS
WITH lastpopber AS (
SELECT DISTINCT ON (popber.pop_id) popber.pop_id,
popber.jahr,
popber.entwicklung
FROM apflora.popber
WHERE (popber.jahr IS NOT NULL)
ORDER BY popber.pop_id, popber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "erloschen" (ursprünglich oder angesiedelt), Ansaatversuch oder potentieller Wuchsort; der letzte Populations-Bericht meldet aber "stabil" und es gab seither keine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN lastpopber ON ((pop.id = lastpopber.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = ANY (ARRAY[101, 201, 202, 211, 300])) AND (lastpopber.entwicklung = 2) AND (NOT (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM (apflora.tpop
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
WHERE ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3) AND (tpopmassn.jahr > lastpopber.jahr))))));
CREATE VIEW apflora.v_qk_pop_statuserloschenletzterpopberunsicher AS
WITH lastpopber AS (
SELECT DISTINCT ON (popber.pop_id) popber.pop_id,
popber.jahr,
popber.entwicklung
FROM apflora.popber
WHERE (popber.jahr IS NOT NULL)
ORDER BY popber.pop_id, popber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "erloschen" (ursprünglich oder angesiedelt) oder potentieller Wuchsort; der letzte Populations-Bericht meldet aber "unsicher" und es gab seither keine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN lastpopber ON ((pop.id = lastpopber.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = ANY (ARRAY[101, 202, 211, 300])) AND (lastpopber.entwicklung = 4) AND (NOT (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM (apflora.tpop
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
WHERE ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3) AND (tpopmassn.jahr > lastpopber.jahr))))));
CREATE VIEW apflora.v_qk_pop_statuserloschenletzterpopberzunehmend AS
WITH lastpopber AS (
SELECT DISTINCT ON (popber.pop_id) popber.pop_id,
popber.jahr,
popber.entwicklung
FROM apflora.popber
WHERE (popber.jahr IS NOT NULL)
ORDER BY popber.pop_id, popber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Population: Status ist "erloschen" (ursprünglich oder angesiedelt), Ansaatversuch oder potentieller Wuchsort; der letzte Populations-Bericht meldet aber "zunehmend" und es gab seither keine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN lastpopber ON ((pop.id = lastpopber.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((pop.status = ANY (ARRAY[101, 201, 202, 211, 300])) AND (lastpopber.entwicklung = 3) AND (NOT (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM (apflora.tpop
JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
WHERE ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3) AND (tpopmassn.jahr > lastpopber.jahr))))));
CREATE VIEW apflora.v_qk_pop_statuserloschenmittpopaktuell AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
'Population: Status ist "erloschen" (urspruenglich oder angesiedelt), es gibt aber eine Teilpopulation mit Status "aktuell" (urspruenglich oder angesiedelt):'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr): ', pop.nr)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((pop.ap_id = ap.id)))
WHERE ((pop.status = ANY (ARRAY[101, 202, 211])) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE (tpop.status = ANY (ARRAY[100, 200, 210])))));
CREATE VIEW apflora.v_qk_pop_statuserloschenmittpopansaatversuch AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
'Population: Status ist "erloschen" (urspruenglich oder angesiedelt), es gibt aber eine Teilpopulation mit Status "angesiedelt, Ansaatversuch":'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr): ', pop.nr)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((pop.ap_id = ap.id)))
WHERE ((pop.status = ANY (ARRAY[101, 202, 211])) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE (tpop.status = 201))));
CREATE VIEW apflora.v_qk_pop_statuspotwuchsortmittpopanders AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
'Population: Status ist "potenzieller Wuchs-/Ansiedlungsort", es gibt aber eine Teilpopulation mit Status "angesiedelt" oder "urspruenglich":'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text] AS url,
ARRAY[concat('Population (Nr): ', pop.nr)] AS text
FROM (apflora.ap
JOIN apflora.pop ON ((pop.ap_id = ap.id)))
WHERE ((pop.status = 300) AND (pop.id IN ( SELECT DISTINCT tpop.pop_id
FROM apflora.tpop
WHERE (tpop.status < 300))));
CREATE VIEW apflora.v_qk_popber_ohneentwicklung AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Populations-Bericht ohne Entwicklung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Kontroll-Berichte'::text, (popber.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Populations-Bericht (Jahr): ', popber.jahr)] AS text,
popber.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.popber ON ((pop.id = popber.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((popber.entwicklung IS NULL) AND (popber.jahr IS NOT NULL))
ORDER BY pop.nr, popber.jahr;
CREATE VIEW apflora.v_qk_popber_ohnejahr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Populations-Bericht ohne Jahr:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Kontroll-Berichte'::text, (popber.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Populations-Bericht (Jahr): ', popber.jahr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.popber ON ((pop.id = popber.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (popber.jahr IS NULL)
ORDER BY pop.nr, popber.jahr;
CREATE VIEW apflora.v_qk_popmassnber_ohneentwicklung AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Populations-Massnahmen-Bericht ohne Entwicklung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Massnahmen-Berichte'::text, (popmassnber.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Populations-Massnahmen-Bericht (Jahr): ', popmassnber.jahr)] AS text,
popmassnber.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.popmassnber ON ((pop.id = popmassnber.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((popmassnber.beurteilung IS NULL) AND (popmassnber.jahr IS NOT NULL))
ORDER BY pop.nr, popmassnber.jahr;
CREATE VIEW apflora.v_qk_popmassnber_ohnejahr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Populations-Massnahmen-Bericht ohne Jahr:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Massnahmen-Berichte'::text, (popmassnber.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Populations-Massnahmen-Bericht (Jahr): ', popmassnber.jahr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.popmassnber ON ((pop.id = popmassnber.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (popmassnber.jahr IS NULL)
ORDER BY pop.nr, popmassnber.jahr;
CREATE VIEW apflora.v_qk_tpop_erloschenundrelevantaberletztebeobvor1950_maxbeobjahr AS
SELECT beob.tpop_id AS id,
max(date_part('year'::text, beob.datum)) AS "MaxJahr"
FROM apflora.beob
WHERE ((beob.datum IS NOT NULL) AND (beob.tpop_id IS NOT NULL))
GROUP BY beob.tpop_id;
CREATE VIEW apflora.v_qk_tpop_erloschenundrelevantaberletztebeobvor1950 AS
SELECT ap.proj_id,
ap.id AS ap_id,
'erloschene Teilpopulation "Fuer AP-Bericht relevant" aber letzte Beobachtung vor 1950:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpop.status = ANY (ARRAY[101, 202, 211])) AND (tpop.apber_relevant = 1) AND (NOT (tpop.id IN ( SELECT DISTINCT tpopkontr.tpop_id
FROM (apflora.tpopkontr
JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id)))
WHERE (((tpopkontr.typ)::text <> ALL (ARRAY[('Zwischenziel'::character varying)::text, ('Ziel'::character varying)::text])) AND (tpopkontrzaehl.anzahl > 0))))) AND (tpop.id IN ( SELECT beob.tpop_id
FROM (apflora.beob
JOIN apflora.v_qk_tpop_erloschenundrelevantaberletztebeobvor1950_maxbeobjahr ON ((beob.tpop_id = v_qk_tpop_erloschenundrelevantaberletztebeobvor1950_maxbeobjahr.id)))
WHERE (v_qk_tpop_erloschenundrelevantaberletztebeobvor1950_maxbeobjahr."MaxJahr" < (1950)::double precision))))
ORDER BY pop.nr, tpop.nr;
CREATE VIEW apflora.v_qk_tpop_mitstatusaktuellundtpopbererloschen_maxtpopberjahr AS
SELECT tpopber.tpop_id,
max(tpopber.jahr) AS "MaxTPopBerJahr"
FROM apflora.tpopber
GROUP BY tpopber.tpop_id;
CREATE VIEW apflora.v_tpopkontr_letztesjahr AS
SELECT tpop.id,
max(tpopkontr.jahr) AS "MaxTPopKontrJahr",
count(tpopkontr.id) AS "AnzTPopKontr"
FROM (apflora.tpop
LEFT JOIN apflora.tpopkontr ON ((tpop.id = tpopkontr.tpop_id)))
WHERE ((((tpopkontr.typ)::text <> ALL (ARRAY[('Ziel'::character varying)::text, ('Zwischenziel'::character varying)::text])) AND (tpopkontr.jahr IS NOT NULL)) OR ((tpopkontr.typ IS NULL) AND (tpopkontr.jahr IS NULL)))
GROUP BY tpop.id;
CREATE VIEW apflora.v_tpopkontr_letzteid AS
SELECT v_tpopkontr_letztesjahr.id,
max((tpopkontr.id)::text) AS "MaxTPopKontrId",
max(v_tpopkontr_letztesjahr."AnzTPopKontr") AS "AnzTPopKontr"
FROM (apflora.tpopkontr
JOIN apflora.v_tpopkontr_letztesjahr ON (((v_tpopkontr_letztesjahr."MaxTPopKontrJahr" = tpopkontr.jahr) AND (tpopkontr.tpop_id = v_tpopkontr_letztesjahr.id))))
GROUP BY v_tpopkontr_letztesjahr.id;
CREATE VIEW apflora.v_qk_tpop_mitstatusansaatversuchundzaehlungmitanzahl AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
pop.id AS pop_id,
tpop.id,
'Teilpopulation mit Status "Ansaatversuch", bei denen in der letzten Kontrolle eine Anzahl festgestellt wurde:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((tpop.pop_id = pop.id))) ON ((pop.ap_id = ap.id)))
WHERE ((tpop.status = 201) AND (tpop.id IN ( SELECT DISTINCT tpopkontr.tpop_id
FROM ((apflora.tpopkontr
JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id)))
JOIN apflora.v_tpopkontr_letzteid ON (((v_tpopkontr_letzteid.id = tpopkontr.tpop_id) AND (v_tpopkontr_letzteid."MaxTPopKontrId" = (tpopkontr.id)::text))))
WHERE (((tpopkontr.typ)::text <> ALL (ARRAY[('Zwischenziel'::character varying)::text, ('Ziel'::character varying)::text])) AND (tpopkontrzaehl.anzahl > 0)))));
CREATE VIEW apflora.v_qk_tpop_mitstatuspotentiellundmassnansiedlung AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
pop.id AS pop_id,
tpop.id,
'Teilpopulation mit Status "potentieller Wuchs-/Ansiedlungsort", bei der eine Massnahme des Typs "Ansiedlung" existiert:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((tpop.pop_id = pop.id))) ON ((pop.ap_id = ap.id)))
WHERE ((tpop.status = 300) AND (tpop.id IN ( SELECT DISTINCT tpopmassn.tpop_id
FROM apflora.tpopmassn
WHERE (tpopmassn.typ < 4))));
CREATE VIEW apflora.v_qk_tpop_mitstatuspotentiellundzaehlungmitanzahl AS
SELECT DISTINCT projekt.id AS proj_id,
pop.ap_id,
pop.id AS pop_id,
tpop.id,
'Teilpopulation mit Status "potentieller Wuchs-/Ansiedlungsort", bei denen in einer Kontrolle eine Anzahl festgestellt wurde:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((tpop.pop_id = pop.id))) ON ((pop.ap_id = ap.id))) ON ((projekt.id = ap.proj_id)))
WHERE ((tpop.status = 300) AND (tpop.id IN ( SELECT DISTINCT tpopkontr.tpop_id
FROM (apflora.tpopkontr
JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id)))
WHERE (((tpopkontr.typ)::text <> ALL (ARRAY[('Zwischenziel'::character varying)::text, ('Ziel'::character varying)::text])) AND (tpopkontrzaehl.anzahl > 0)))))
ORDER BY pop.id, tpop.id;
CREATE VIEW apflora.v_qk_tpop_mitstatusunklarohnebegruendung AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Teilpopulation mit "Status unklar", ohne Begruendung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpop.status_unklar = true) AND (tpop.status_unklar_grund IS NULL))
ORDER BY ap.id, pop.nr, tpop.nr;
CREATE VIEW apflora.v_qk_tpop_ohneapberrelevant AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Teilpopulation ohne "Fuer AP-Bericht relevant":'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (tpop.apber_relevant IS NULL)
ORDER BY ap.id, pop.nr, tpop.nr;
CREATE VIEW apflora.v_qk_tpop_ohnebekanntseit AS
SELECT ap.id AS ap_id,
'Teilpopulation ohne "bekannt seit":'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (tpop.bekannt_seit IS NULL)
ORDER BY ap.id, pop.nr, tpop.nr;
CREATE VIEW apflora.v_qk_tpop_ohneflurname AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Teilpopulation ohne Flurname:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (tpop.flurname IS NULL)
ORDER BY ap.id, pop.nr, tpop.nr;
CREATE VIEW apflora.v_qk_tpop_ohnekoordinaten AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Teilpopulation: Mindestens eine Koordinate fehlt:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpop.x IS NULL) OR (tpop.y IS NULL))
ORDER BY ap.id, pop.nr, tpop.nr;
CREATE VIEW apflora.v_qk_tpop_ohnenr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Teilpopulation ohne Nr.:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (tpop.nr IS NULL)
ORDER BY ap.id, pop.nr, tpop.nr;
CREATE VIEW apflora.v_qk_tpop_ohnestatus AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Teilpopulation ohne Status:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (tpop.status IS NULL)
ORDER BY ap.id, pop.nr, tpop.nr;
CREATE VIEW apflora.v_qk_tpop_popnrtpopnrmehrdeutig AS
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Teilpopulation: Die TPop.-Nr. ist mehrdeutig:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((tpop.pop_id = pop.id))) ON ((pop.ap_id = ap.id))) ON ((projekt.id = ap.proj_id)))
WHERE ((tpop.pop_id IN ( SELECT DISTINCT tpop_1.pop_id
FROM apflora.tpop tpop_1
GROUP BY tpop_1.pop_id, tpop_1.nr
HAVING (count(*) > 1))) AND (tpop.nr IN ( SELECT tpop_1.nr
FROM apflora.tpop tpop_1
GROUP BY tpop_1.pop_id, tpop_1.nr
HAVING (count(*) > 1))))
ORDER BY projekt.id, ap.id, pop.nr, tpop.nr;
CREATE VIEW apflora.v_qk_tpop_statusaktuellletztertpopbererloschen AS
WITH lasttpopber AS (
SELECT DISTINCT ON (tpopber.tpop_id) tpopber.tpop_id,
tpopber.jahr,
tpopber.entwicklung
FROM apflora.tpopber
WHERE (tpopber.jahr IS NOT NULL)
ORDER BY tpopber.tpop_id, tpopber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Teilpopulation: Status ist "aktuell" (ursprünglich oder angesiedelt) oder potentieller Wuchsort; der letzte Teilpopulations-Bericht meldet aber "erloschen" und es gab seither keine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN lasttpopber ON ((tpop.id = lasttpopber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((tpop.status = ANY (ARRAY[100, 200, 210, 300])) AND (lasttpopber.entwicklung = 8) AND (NOT (tpop.id IN ( SELECT tpopmassn.tpop_id
FROM apflora.tpopmassn
WHERE ((tpopmassn.tpop_id = tpop.id) AND ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3)) AND (tpopmassn.jahr IS NOT NULL) AND (tpopmassn.jahr > lasttpopber.jahr))))));
CREATE VIEW apflora.v_tpop_letztertpopber0_overall AS
SELECT tpopber.tpop_id,
max(tpopber.jahr) AS tpopber_jahr
FROM apflora.tpopber
WHERE (tpopber.jahr IS NOT NULL)
GROUP BY tpopber.tpop_id;
CREATE VIEW apflora.v_qk_tpop_statuserloschenletzterpopberaktuell AS
SELECT DISTINCT ap.proj_id,
pop.ap_id,
'Teilpopulation: Status ist "erloschen", der letzte Teilpopulations-Bericht meldet aber "aktuell":'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopber
JOIN apflora.v_tpop_letztertpopber0_overall ON (((v_tpop_letztertpopber0_overall.tpopber_jahr = tpopber.jahr) AND (v_tpop_letztertpopber0_overall.tpop_id = tpopber.tpop_id)))) ON ((tpopber.tpop_id = tpop.id))) ON ((tpop.pop_id = pop.id))) ON ((pop.ap_id = ap.id)))
WHERE ((tpopber.entwicklung < 8) AND (tpop.status = ANY (ARRAY[101, 202, 211])) AND (NOT (tpop.id IN ( SELECT tpopmassn.tpop_id
FROM apflora.tpopmassn
WHERE ((tpopmassn.tpop_id = tpop.id) AND ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3)) AND (tpopmassn.jahr IS NOT NULL) AND (tpopmassn.jahr > tpopber.jahr))))));
CREATE VIEW apflora.v_qk_tpop_statuserloschenletztertpopberabnehmend AS
WITH lasttpopber AS (
SELECT DISTINCT ON (tpopber.tpop_id) tpopber.tpop_id,
tpopber.jahr,
tpopber.entwicklung
FROM apflora.tpopber
WHERE (tpopber.jahr IS NOT NULL)
ORDER BY tpopber.tpop_id, tpopber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Teilpopulation: Status ist "erloschen" (ursprünglich oder angesiedelt), Ansaatversuch oder potentieller Wuchsort; der letzte Teilpopulations-Bericht meldet aber "abnehmend" und es gab seither keine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN lasttpopber ON ((tpop.id = lasttpopber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((tpop.status = ANY (ARRAY[101, 201, 202, 211, 300])) AND (lasttpopber.entwicklung = 1) AND (NOT (tpop.id IN ( SELECT tpopmassn.tpop_id
FROM apflora.tpopmassn
WHERE ((tpopmassn.tpop_id = tpop.id) AND ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3)) AND (tpopmassn.jahr IS NOT NULL) AND (tpopmassn.jahr > lasttpopber.jahr))))));
CREATE VIEW apflora.v_qk_tpop_statuserloschenletztertpopbererloschenmitansiedlung AS
WITH lasttpopber AS (
SELECT DISTINCT ON (tpopber.tpop_id) tpopber.tpop_id,
tpopber.jahr,
tpopber.entwicklung
FROM apflora.tpopber
WHERE (tpopber.jahr IS NOT NULL)
ORDER BY tpopber.tpop_id, tpopber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Teilpopulation: Status ist "erloschen" (ursprünglich oder angesiedelt); der letzte Teilpopulations-Bericht meldet "erloschen". Seither gab es aber eine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN lasttpopber ON ((tpop.id = lasttpopber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((tpop.status = ANY (ARRAY[101, 202, 211])) AND (lasttpopber.entwicklung = 8) AND (tpop.id IN ( SELECT tpopmassn.tpop_id
FROM apflora.tpopmassn
WHERE ((tpopmassn.tpop_id = tpop.id) AND ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3)) AND (tpopmassn.jahr IS NOT NULL) AND (tpopmassn.jahr > lasttpopber.jahr)))));
CREATE VIEW apflora.v_qk_tpop_statuserloschenletztertpopberstabil AS
WITH lasttpopber AS (
SELECT DISTINCT ON (tpopber.tpop_id) tpopber.tpop_id,
tpopber.jahr,
tpopber.entwicklung
FROM apflora.tpopber
WHERE (tpopber.jahr IS NOT NULL)
ORDER BY tpopber.tpop_id, tpopber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Teilpopulation: Status ist "erloschen" (ursprünglich oder angesiedelt), Ansaatversuch oder potentieller Wuchsort; der letzte Teilpopulations-Bericht meldet aber "stabil" und es gab seither keine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN lasttpopber ON ((tpop.id = lasttpopber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((tpop.status = ANY (ARRAY[101, 201, 202, 211, 300])) AND (lasttpopber.entwicklung = 2) AND (NOT (tpop.id IN ( SELECT tpopmassn.tpop_id
FROM apflora.tpopmassn
WHERE ((tpopmassn.tpop_id = tpop.id) AND ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3)) AND (tpopmassn.jahr IS NOT NULL) AND (tpopmassn.jahr > lasttpopber.jahr))))));
CREATE VIEW apflora.v_qk_tpop_statuserloschenletztertpopberunsicher AS
WITH lasttpopber AS (
SELECT DISTINCT ON (tpopber.tpop_id) tpopber.tpop_id,
tpopber.jahr,
tpopber.entwicklung
FROM apflora.tpopber
WHERE (tpopber.jahr IS NOT NULL)
ORDER BY tpopber.tpop_id, tpopber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Teilpopulation: Status ist "erloschen" (ursprünglich oder angesiedelt) oder potentieller Wuchsort; der letzte Teilpopulations-Bericht meldet aber "unsicher" und es gab seither keine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN lasttpopber ON ((tpop.id = lasttpopber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((tpop.status = ANY (ARRAY[101, 202, 211, 300])) AND (lasttpopber.entwicklung = 4) AND (NOT (tpop.id IN ( SELECT tpopmassn.tpop_id
FROM apflora.tpopmassn
WHERE ((tpopmassn.tpop_id = tpop.id) AND ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3)) AND (tpopmassn.jahr IS NOT NULL) AND (tpopmassn.jahr > lasttpopber.jahr))))));
CREATE VIEW apflora.v_qk_tpop_statuserloschenletztertpopberzunehmend AS
WITH lasttpopber AS (
SELECT DISTINCT ON (tpopber.tpop_id) tpopber.tpop_id,
tpopber.jahr,
tpopber.entwicklung
FROM apflora.tpopber
WHERE (tpopber.jahr IS NOT NULL)
ORDER BY tpopber.tpop_id, tpopber.jahr DESC
)
SELECT projekt.id AS proj_id,
ap.id AS ap_id,
'Teilpopulation: Status ist "erloschen" (ursprünglich oder angesiedelt), Ansaatversuch oder potentieller Wuchsort; der letzte Teilpopulations-Bericht meldet aber "zunehmend" und es gab seither keine Ansiedlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.projekt
JOIN (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN lasttpopber ON ((tpop.id = lasttpopber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id))) ON ((projekt.id = ap.proj_id)))
WHERE ((tpop.status = ANY (ARRAY[101, 201, 202, 211, 300])) AND (lasttpopber.entwicklung = 3) AND (NOT (tpop.id IN ( SELECT tpopmassn.tpop_id
FROM apflora.tpopmassn
WHERE ((tpopmassn.tpop_id = tpop.id) AND ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3)) AND (tpopmassn.jahr IS NOT NULL) AND (tpopmassn.jahr > lasttpopber.jahr))))));
CREATE VIEW apflora.v_qk_tpop_statuspotentiellfuerapberrelevant AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Teilpopulation mit Status "potenzieller Wuchs-/Ansiedlungsort" und "Fuer AP-Bericht relevant?" = ja:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpop.status = 300) AND (tpop.apber_relevant = 1))
ORDER BY ap.id, pop.nr, tpop.nr;
CREATE VIEW apflora.v_qk_tpopber_ohneentwicklung AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Teilpopulations-Bericht ohne Entwicklung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Kontroll-Berichte'::text, (tpopber.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Teilpopulations-Bericht (Jahr): ', tpopber.jahr)] AS text,
tpopber.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopber ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpopber.entwicklung IS NULL) AND (tpopber.jahr IS NOT NULL))
ORDER BY pop.nr, tpop.nr, tpopber.jahr;
CREATE VIEW apflora.v_qk_tpopber_ohnejahr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Teilpopulations-Bericht ohne Jahr:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Kontroll-Berichte'::text, (tpopber.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Teilpopulations-Bericht (id): ', tpopber.id)] AS text
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN apflora.tpopber ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (tpopber.jahr IS NULL)
ORDER BY pop.nr, tpop.nr, tpopber.jahr;
CREATE VIEW apflora.v_qk_ziel_ohnejahr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Ziel ohne Jahr:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Ziele'::text, (ziel.id)::text] AS url,
ARRAY[concat('Ziel (id): ', ziel.id)] AS text
FROM (apflora.ap
JOIN apflora.ziel ON ((ap.id = ziel.ap_id)))
WHERE ((ziel.jahr IS NULL) OR (ziel.jahr = 1))
ORDER BY ziel.id;
CREATE VIEW apflora.v_qk_ziel_ohnetyp AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Ziel ohne Typ:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Ziele'::text, (ziel.id)::text] AS url,
ARRAY[concat('Ziel (Jahr): ', ziel.jahr)] AS text
FROM (apflora.ap
JOIN apflora.ziel ON ((ap.id = ziel.ap_id)))
WHERE (ziel.typ IS NULL)
ORDER BY ziel.jahr;
CREATE VIEW apflora.v_qk_ziel_ohneziel AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Ziel ohne Ziel:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Ziele'::text, (ziel.id)::text] AS url,
ARRAY[concat('Ziel (Jahr): ', ziel.jahr)] AS text
FROM (apflora.ap
JOIN apflora.ziel ON ((ap.id = ziel.ap_id)))
WHERE (ziel.bezeichnung IS NULL)
ORDER BY ziel.jahr;
CREATE VIEW apflora.v_qk_zielber_ohneentwicklung AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Ziel-Bericht ohne Entwicklung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Ziele'::text, (ziel.id)::text, 'Berichte'::text, (zielber.id)::text] AS url,
ARRAY[concat('Ziel (Jahr): ', ziel.jahr), concat('Ziel-Bericht (Jahr): ', zielber.jahr)] AS text,
zielber.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.ziel
JOIN apflora.zielber ON ((ziel.id = zielber.ziel_id))) ON ((ap.id = ziel.ap_id)))
WHERE ((zielber.erreichung IS NULL) AND (zielber.jahr IS NOT NULL))
ORDER BY ziel.jahr, ziel.id, zielber.jahr;
CREATE VIEW apflora.v_qk_zielber_ohnejahr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Ziel-Bericht ohne Jahr:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Ziele'::text, (ziel.id)::text, 'Berichte'::text, (zielber.id)::text] AS url,
ARRAY[concat('Ziel (Jahr): ', ziel.jahr), concat('Ziel-Bericht (Jahr): ', zielber.jahr)] AS text
FROM (apflora.ap
JOIN (apflora.ziel
JOIN apflora.zielber ON ((ziel.id = zielber.ziel_id))) ON ((ap.id = ziel.ap_id)))
WHERE (zielber.jahr IS NULL)
ORDER BY ziel.jahr, ziel.id, zielber.jahr;
CREATE VIEW apflora.v_tpop AS
SELECT ap.id AS ap_id,
ae_eigenschaften.familie,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
adresse.name AS ap_bearbeiter,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
tpop.id,
tpop.nr,
tpop.gemeinde,
tpop.flurname,
pop_status_werte_2.text AS status,
tpop.bekannt_seit,
tpop.status_unklar,
tpop.status_unklar_grund,
tpop.x,
tpop.y,
tpop.radius,
tpop.hoehe,
tpop.exposition,
tpop.klima,
tpop.neigung,
tpop.beschreibung,
tpop.kataster_nr,
tpop.apber_relevant,
tpop.eigentuemer,
tpop.kontakt,
tpop.nutzungszone,
tpop.bewirtschafter,
tpop.bewirtschaftung,
tpop.changed,
tpop.changed_by
FROM (((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.pop_status_werte pop_status_werte_2 ON ((tpop.status = pop_status_werte_2.code)))
LEFT JOIN apflora.adresse ON ((ap.bearbeiter = adresse.id)))
WHERE (ae_eigenschaften.taxid > 150)
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr;
CREATE VIEW apflora.v_tpop_letztekontrid AS
SELECT tpop.id,
v_tpopkontr_letzteid."MaxTPopKontrId",
v_tpopkontr_letzteid."AnzTPopKontr"
FROM (apflora.tpop
LEFT JOIN apflora.v_tpopkontr_letzteid ON ((tpop.id = v_tpopkontr_letzteid.id)));
CREATE VIEW apflora.v_tpopkontr AS
SELECT ap.id AS ap_id,
ae_eigenschaften.familie,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
apflora_adresse_1.name AS ap_bearbeiter,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
tpop.id AS tpop_id,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
pop_status_werte_2.text AS tpop_status,
tpop.bekannt_seit AS tpop_bekannt_seit,
tpop.status_unklar AS tpop_status_unklar,
tpop.status_unklar_grund AS tpop_status_unklar_grund,
tpop.x AS tpop_x,
tpop.y AS tpop_y,
tpop.radius AS tpop_radius,
tpop.hoehe AS tpop_hoehe,
tpop.exposition AS tpop_exposition,
tpop.klima AS tpop_klima,
tpop.neigung AS tpop_neigung,
tpop.beschreibung AS tpop_beschreibung,
tpop.kataster_nr AS tpop_kataster_nr,
tpop.apber_relevant AS tpop_apber_relevant,
tpop.eigentuemer AS tpop_eigentuemer,
tpop.kontakt AS tpop_kontakt,
tpop.nutzungszone AS tpop_nutzungszone,
tpop.bewirtschafter AS tpop_bewirtschafter,
tpop.bewirtschaftung AS tpop_bewirtschaftung,
tpopkontr.id,
tpopkontr.jahr,
tpopkontr.datum,
tpopkontr_typ_werte.text AS typ,
adresse.name AS bearbeiter,
tpopkontr.ueberlebensrate,
tpopkontr.vitalitaet,
tpop_entwicklung_werte.text AS entwicklung,
tpopkontr.ursachen,
tpopkontr.erfolgsbeurteilung,
tpopkontr.umsetzung_aendern,
tpopkontr.kontrolle_aendern,
tpopkontr.bemerkungen,
tpopkontr.lr_delarze,
tpopkontr.lr_umgebung_delarze,
tpopkontr.vegetationstyp,
tpopkontr.konkurrenz,
tpopkontr.moosschicht,
tpopkontr.krautschicht,
tpopkontr.strauchschicht,
tpopkontr.baumschicht,
tpopkontr.boden_typ,
tpopkontr.boden_kalkgehalt,
tpopkontr.boden_durchlaessigkeit,
tpopkontr.boden_humus,
tpopkontr.boden_naehrstoffgehalt,
tpopkontr.boden_abtrag,
tpopkontr.wasserhaushalt,
tpopkontr_idbiotuebereinst_werte.text AS idealbiotop_uebereinstimmung,
tpopkontr.handlungsbedarf,
tpopkontr.flaeche_ueberprueft,
tpopkontr.flaeche,
tpopkontr.plan_vorhanden,
tpopkontr.deckung_vegetation,
tpopkontr.deckung_nackter_boden,
tpopkontr.deckung_ap_art,
tpopkontr.jungpflanzen_vorhanden,
tpopkontr.vegetationshoehe_maximum,
tpopkontr.vegetationshoehe_mittel,
tpopkontr.gefaehrdung,
tpopkontr.changed,
tpopkontr.changed_by,
array_to_string(array_agg(tpopkontrzaehl.anzahl), ', '::text) AS zaehlung_anzahlen,
string_agg((tpopkontrzaehl_einheit_werte.text)::text, ', '::text) AS zaehlung_einheiten,
string_agg((tpopkontrzaehl_methode_werte.text)::text, ', '::text) AS zaehlung_methoden
FROM (apflora.pop_status_werte pop_status_werte_2
RIGHT JOIN (((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN ((((((apflora.tpopkontr
LEFT JOIN apflora.tpopkontr_typ_werte ON (((tpopkontr.typ)::text = (tpopkontr_typ_werte.text)::text)))
LEFT JOIN apflora.adresse ON ((tpopkontr.bearbeiter = adresse.id)))
LEFT JOIN apflora.tpop_entwicklung_werte ON ((tpopkontr.entwicklung = tpop_entwicklung_werte.code)))
LEFT JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id)))
LEFT JOIN apflora.tpopkontrzaehl_einheit_werte ON ((tpopkontrzaehl.einheit = tpopkontrzaehl_einheit_werte.code)))
LEFT JOIN apflora.tpopkontrzaehl_methode_werte ON ((tpopkontrzaehl.methode = tpopkontrzaehl_methode_werte.code))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.tpopkontr_idbiotuebereinst_werte ON ((tpopkontr.idealbiotop_uebereinstimmung = tpopkontr_idbiotuebereinst_werte.code)))
LEFT JOIN apflora.adresse apflora_adresse_1 ON ((ap.bearbeiter = apflora_adresse_1.id))) ON ((pop_status_werte_2.code = tpop.status)))
WHERE (ae_eigenschaften.taxid > 150)
GROUP BY ap.id, ae_eigenschaften.familie, ae_eigenschaften.artname, ap_bearbstand_werte.text, ap.start_jahr, ap_umsetzung_werte.text, apflora_adresse_1.name, pop.id, pop.nr, pop.name, pop_status_werte.text, pop.bekannt_seit, tpop.id, tpop.nr, tpop.gemeinde, tpop.flurname, pop_status_werte_2.text, tpop.bekannt_seit, tpop.status_unklar, tpop.status_unklar_grund, tpop.x, tpop.y, tpop.radius, tpop.hoehe, tpop.exposition, tpop.klima, tpop.neigung, tpop.beschreibung, tpop.kataster_nr, tpop.apber_relevant, tpop.eigentuemer, tpop.kontakt, tpop.nutzungszone, tpop.bewirtschafter, tpop.bewirtschaftung, tpopkontr.id, tpopkontr.tpop_id, tpopkontr.jahr, tpopkontr.datum, tpopkontr_typ_werte.text, adresse.name, tpopkontr.ueberlebensrate, tpopkontr.vitalitaet, tpop_entwicklung_werte.text, tpopkontr.ursachen, tpopkontr.erfolgsbeurteilung, tpopkontr.umsetzung_aendern, tpopkontr.kontrolle_aendern, tpopkontr.bemerkungen, tpopkontr.lr_delarze, tpopkontr.lr_umgebung_delarze, tpopkontr.vegetationstyp, tpopkontr.konkurrenz, tpopkontr.moosschicht, tpopkontr.krautschicht, tpopkontr.strauchschicht, tpopkontr.baumschicht, tpopkontr.boden_typ, tpopkontr.boden_kalkgehalt, tpopkontr.boden_durchlaessigkeit, tpopkontr.boden_humus, tpopkontr.boden_naehrstoffgehalt, tpopkontr.boden_abtrag, tpopkontr.wasserhaushalt, tpopkontr_idbiotuebereinst_werte.text, tpopkontr.handlungsbedarf, tpopkontr.flaeche_ueberprueft, tpopkontr.flaeche, tpopkontr.plan_vorhanden, tpopkontr.deckung_vegetation, tpopkontr.deckung_nackter_boden, tpopkontr.deckung_ap_art, tpopkontr.jungpflanzen_vorhanden, tpopkontr.vegetationshoehe_maximum, tpopkontr.vegetationshoehe_mittel, tpopkontr.gefaehrdung, tpopkontr.changed, tpopkontr.changed_by
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr;
CREATE VIEW apflora.v_tpop_anzkontrinklletzter AS
SELECT v_tpop.ap_id,
v_tpop.familie,
v_tpop.artname,
v_tpop.ap_bearbeitung,
v_tpop.ap_start_jahr,
v_tpop.ap_umsetzung,
v_tpop.ap_bearbeiter,
v_tpop.pop_id,
v_tpop.pop_nr,
v_tpop.pop_name,
v_tpop.pop_status,
v_tpop.pop_bekannt_seit,
v_tpop.pop_status_unklar,
v_tpop.pop_status_unklar_begruendung,
v_tpop.pop_x,
v_tpop.pop_y,
v_tpop.id,
v_tpop.nr,
v_tpop.gemeinde,
v_tpop.flurname,
v_tpop.status,
v_tpop.bekannt_seit,
v_tpop.status_unklar,
v_tpop.status_unklar_grund,
v_tpop.x,
v_tpop.y,
v_tpop.radius,
v_tpop.hoehe,
v_tpop.exposition,
v_tpop.klima,
v_tpop.neigung,
v_tpop.beschreibung,
v_tpop.kataster_nr,
v_tpop.apber_relevant,
v_tpop.eigentuemer,
v_tpop.kontakt,
v_tpop.nutzungszone,
v_tpop.bewirtschafter,
v_tpop.bewirtschaftung,
v_tpop.changed,
v_tpop.changed_by,
v_tpop_letztekontrid."AnzTPopKontr" AS anzahl_kontrollen,
v_tpopkontr.id AS kontr_id,
v_tpopkontr.jahr AS kontr_jahr,
v_tpopkontr.datum AS kontr_datum,
v_tpopkontr.typ AS kontr_typ,
v_tpopkontr.bearbeiter AS kontr_bearbeiter,
v_tpopkontr.ueberlebensrate AS kontr_ueberlebensrate,
v_tpopkontr.vitalitaet AS kontr_vitalitaet,
v_tpopkontr.entwicklung AS kontr_entwicklung,
v_tpopkontr.ursachen AS kontr_ursachen,
v_tpopkontr.erfolgsbeurteilung AS kontr_erfolgsbeurteilung,
v_tpopkontr.umsetzung_aendern AS kontr_umsetzung_aendern,
v_tpopkontr.kontrolle_aendern AS kontr_kontrolle_aendern,
v_tpopkontr.bemerkungen AS kontr_bemerkungen,
v_tpopkontr.lr_delarze AS kontr_lr_delarze,
v_tpopkontr.lr_umgebung_delarze AS kontr_lr_umgebung_delarze,
v_tpopkontr.vegetationstyp AS kontr_vegetationstyp,
v_tpopkontr.konkurrenz AS kontr_konkurrenz,
v_tpopkontr.moosschicht AS kontr_moosschicht,
v_tpopkontr.krautschicht AS kontr_krautschicht,
v_tpopkontr.strauchschicht AS kontr_strauchschicht,
v_tpopkontr.baumschicht AS kontr_baumschicht,
v_tpopkontr.boden_typ AS kontr_boden_typ,
v_tpopkontr.boden_kalkgehalt AS kontr_boden_kalkgehalt,
v_tpopkontr.boden_durchlaessigkeit AS kontr_boden_durchlaessigkeit,
v_tpopkontr.boden_humus AS kontr_boden_humus,
v_tpopkontr.boden_naehrstoffgehalt AS kontr_boden_naehrstoffgehalt,
v_tpopkontr.boden_abtrag AS kontr_boden_abtrag,
v_tpopkontr.wasserhaushalt AS kontr_wasserhaushalt,
v_tpopkontr.idealbiotop_uebereinstimmung AS kontr_idealbiotop_uebereinstimmung,
v_tpopkontr.handlungsbedarf AS kontr_handlungsbedarf,
v_tpopkontr.flaeche_ueberprueft AS kontr_flaeche_ueberprueft,
v_tpopkontr.flaeche AS kontr_flaeche,
v_tpopkontr.plan_vorhanden AS kontr_plan_vorhanden,
v_tpopkontr.deckung_vegetation AS kontr_deckung_vegetation,
v_tpopkontr.deckung_nackter_boden AS kontr_deckung_nackter_boden,
v_tpopkontr.deckung_ap_art AS kontr_deckung_ap_art,
v_tpopkontr.jungpflanzen_vorhanden AS kontr_jungpflanzen_vorhanden,
v_tpopkontr.vegetationshoehe_maximum AS kontr_vegetationshoehe_maximum,
v_tpopkontr.vegetationshoehe_mittel AS kontr_vegetationshoehe_mittel,
v_tpopkontr.gefaehrdung AS kontr_gefaehrdung,
v_tpopkontr.changed AS kontr_changed,
v_tpopkontr.changed_by AS kontr_changed_by,
v_tpopkontr.zaehlung_anzahlen,
v_tpopkontr.zaehlung_einheiten,
v_tpopkontr.zaehlung_methoden
FROM ((apflora.v_tpop_letztekontrid
LEFT JOIN apflora.v_tpopkontr ON ((v_tpop_letztekontrid."MaxTPopKontrId" = (v_tpopkontr.id)::text)))
JOIN apflora.v_tpop ON ((v_tpop_letztekontrid.id = v_tpop.id)));
CREATE VIEW apflora.v_tpopber_letzteid AS
SELECT tpopkontr.tpop_id,
( SELECT tpopber_1.id
FROM apflora.tpopber tpopber_1
WHERE (tpopber_1.tpop_id = tpopkontr.tpop_id)
ORDER BY tpopber_1.changed DESC
LIMIT 1) AS tpopber_letzte_id,
max(tpopber.jahr) AS tpopber_jahr_max,
count(tpopber.id) AS tpopber_anz
FROM (apflora.tpopkontr
JOIN apflora.tpopber ON ((tpopkontr.tpop_id = tpopber.tpop_id)))
WHERE (((tpopkontr.typ)::text <> ALL (ARRAY[('Ziel'::character varying)::text, ('Zwischenziel'::character varying)::text])) AND (tpopber.jahr IS NOT NULL))
GROUP BY tpopkontr.tpop_id;
CREATE VIEW apflora.v_tpopber_mitletzterid AS
SELECT tpopber.tpop_id,
v_tpopber_letzteid.tpopber_anz,
tpopber.id,
tpopber.jahr,
tpop_entwicklung_werte.text AS entwicklung,
tpopber.bemerkungen,
tpopber.changed,
tpopber.changed_by
FROM ((apflora.v_tpopber_letzteid
JOIN apflora.tpopber ON (((v_tpopber_letzteid.tpopber_letzte_id = tpopber.id) AND (v_tpopber_letzteid.tpop_id = tpopber.tpop_id))))
LEFT JOIN apflora.tpop_entwicklung_werte ON ((tpopber.entwicklung = tpop_entwicklung_werte.code)));
CREATE VIEW apflora.v_tpop_anzkontrinklletzterundletztertpopber AS
SELECT v_tpop_anzkontrinklletzter.ap_id,
v_tpop_anzkontrinklletzter.familie,
v_tpop_anzkontrinklletzter.artname,
v_tpop_anzkontrinklletzter.ap_bearbeitung,
v_tpop_anzkontrinklletzter.ap_start_jahr,
v_tpop_anzkontrinklletzter.ap_umsetzung,
v_tpop_anzkontrinklletzter.ap_bearbeiter,
v_tpop_anzkontrinklletzter.pop_id,
v_tpop_anzkontrinklletzter.pop_nr,
v_tpop_anzkontrinklletzter.pop_name,
v_tpop_anzkontrinklletzter.pop_status,
v_tpop_anzkontrinklletzter.pop_bekannt_seit,
v_tpop_anzkontrinklletzter.pop_status_unklar,
v_tpop_anzkontrinklletzter.pop_status_unklar_begruendung,
v_tpop_anzkontrinklletzter.pop_x,
v_tpop_anzkontrinklletzter.pop_y,
v_tpop_anzkontrinklletzter.id,
v_tpop_anzkontrinklletzter.nr,
v_tpop_anzkontrinklletzter.gemeinde,
v_tpop_anzkontrinklletzter.flurname,
v_tpop_anzkontrinklletzter.status,
v_tpop_anzkontrinklletzter.bekannt_seit,
v_tpop_anzkontrinklletzter.status_unklar,
v_tpop_anzkontrinklletzter.status_unklar_grund,
v_tpop_anzkontrinklletzter.x,
v_tpop_anzkontrinklletzter.y,
v_tpop_anzkontrinklletzter.radius,
v_tpop_anzkontrinklletzter.hoehe,
v_tpop_anzkontrinklletzter.exposition,
v_tpop_anzkontrinklletzter.klima,
v_tpop_anzkontrinklletzter.neigung,
v_tpop_anzkontrinklletzter.beschreibung,
v_tpop_anzkontrinklletzter.kataster_nr,
v_tpop_anzkontrinklletzter.apber_relevant,
v_tpop_anzkontrinklletzter.eigentuemer,
v_tpop_anzkontrinklletzter.kontakt,
v_tpop_anzkontrinklletzter.nutzungszone,
v_tpop_anzkontrinklletzter.bewirtschafter,
v_tpop_anzkontrinklletzter.bewirtschaftung,
v_tpop_anzkontrinklletzter.changed,
v_tpop_anzkontrinklletzter.changed_by,
v_tpop_anzkontrinklletzter.anzahl_kontrollen,
v_tpop_anzkontrinklletzter.kontr_id,
v_tpop_anzkontrinklletzter.kontr_jahr,
v_tpop_anzkontrinklletzter.kontr_datum,
v_tpop_anzkontrinklletzter.kontr_typ,
v_tpop_anzkontrinklletzter.kontr_bearbeiter,
v_tpop_anzkontrinklletzter.kontr_ueberlebensrate,
v_tpop_anzkontrinklletzter.kontr_vitalitaet,
v_tpop_anzkontrinklletzter.kontr_entwicklung,
v_tpop_anzkontrinklletzter.kontr_ursachen,
v_tpop_anzkontrinklletzter.kontr_erfolgsbeurteilung,
v_tpop_anzkontrinklletzter.kontr_umsetzung_aendern,
v_tpop_anzkontrinklletzter.kontr_kontrolle_aendern,
v_tpop_anzkontrinklletzter.kontr_bemerkungen,
v_tpop_anzkontrinklletzter.kontr_lr_delarze,
v_tpop_anzkontrinklletzter.kontr_lr_umgebung_delarze,
v_tpop_anzkontrinklletzter.kontr_vegetationstyp,
v_tpop_anzkontrinklletzter.kontr_konkurrenz,
v_tpop_anzkontrinklletzter.kontr_moosschicht,
v_tpop_anzkontrinklletzter.kontr_krautschicht,
v_tpop_anzkontrinklletzter.kontr_strauchschicht,
v_tpop_anzkontrinklletzter.kontr_baumschicht,
v_tpop_anzkontrinklletzter.kontr_boden_typ,
v_tpop_anzkontrinklletzter.kontr_boden_kalkgehalt,
v_tpop_anzkontrinklletzter.kontr_boden_durchlaessigkeit,
v_tpop_anzkontrinklletzter.kontr_boden_humus,
v_tpop_anzkontrinklletzter.kontr_boden_naehrstoffgehalt,
v_tpop_anzkontrinklletzter.kontr_boden_abtrag,
v_tpop_anzkontrinklletzter.kontr_wasserhaushalt,
v_tpop_anzkontrinklletzter.kontr_idealbiotop_uebereinstimmung,
v_tpop_anzkontrinklletzter.kontr_handlungsbedarf,
v_tpop_anzkontrinklletzter.kontr_flaeche_ueberprueft,
v_tpop_anzkontrinklletzter.kontr_flaeche,
v_tpop_anzkontrinklletzter.kontr_plan_vorhanden,
v_tpop_anzkontrinklletzter.kontr_deckung_vegetation,
v_tpop_anzkontrinklletzter.kontr_deckung_nackter_boden,
v_tpop_anzkontrinklletzter.kontr_deckung_ap_art,
v_tpop_anzkontrinklletzter.kontr_jungpflanzen_vorhanden,
v_tpop_anzkontrinklletzter.kontr_vegetationshoehe_maximum,
v_tpop_anzkontrinklletzter.kontr_vegetationshoehe_mittel,
v_tpop_anzkontrinklletzter.kontr_gefaehrdung,
v_tpop_anzkontrinklletzter.kontr_changed,
v_tpop_anzkontrinklletzter.kontr_changed_by,
v_tpop_anzkontrinklletzter.zaehlung_anzahlen,
v_tpop_anzkontrinklletzter.zaehlung_einheiten,
v_tpop_anzkontrinklletzter.zaehlung_methoden,
v_tpopber_mitletzterid.tpopber_anz,
v_tpopber_mitletzterid.id AS tpopber_id,
v_tpopber_mitletzterid.jahr AS tpopber_jahr,
v_tpopber_mitletzterid.entwicklung AS tpopber_entwicklung,
v_tpopber_mitletzterid.bemerkungen AS tpopber_bemerkungen,
v_tpopber_mitletzterid.changed AS tpopber_changed,
v_tpopber_mitletzterid.changed_by AS tpopber_changed_by
FROM (apflora.v_tpop_anzkontrinklletzter
LEFT JOIN apflora.v_tpopber_mitletzterid ON ((v_tpop_anzkontrinklletzter.id = v_tpopber_mitletzterid.tpop_id)));
CREATE VIEW apflora.v_tpop_anzmassn AS
SELECT ap.id AS ap_id,
ae_eigenschaften.familie,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
tpop.id,
tpop.nr,
tpop.gemeinde,
tpop.flurname,
pop_status_werte_2.text AS status,
tpop.bekannt_seit,
tpop.status_unklar,
tpop.status_unklar_grund,
tpop.x,
tpop.y,
tpop.radius,
tpop.hoehe,
tpop.exposition,
tpop.klima,
tpop.neigung,
tpop.beschreibung,
tpop.kataster_nr,
tpop.apber_relevant,
tpop.eigentuemer,
tpop.kontakt,
tpop.nutzungszone,
tpop.bewirtschafter,
tpop.bewirtschaftung,
count(tpopmassn.id) AS anzahl_massnahmen
FROM (apflora.ae_eigenschaften
JOIN (((apflora.ap
JOIN ((apflora.pop
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
JOIN ((apflora.tpop
LEFT JOIN apflora.tpopmassn ON ((tpop.id = tpopmassn.tpop_id)))
LEFT JOIN apflora.pop_status_werte pop_status_werte_2 ON ((tpop.status = pop_status_werte_2.code))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code))) ON ((ae_eigenschaften.id = ap.art_id)))
GROUP BY ap.id, ae_eigenschaften.familie, ae_eigenschaften.artname, ap_bearbstand_werte.text, ap.start_jahr, ap_umsetzung_werte.text, pop.id, pop.nr, pop.name, pop_status_werte.text, pop.bekannt_seit, pop.status_unklar, pop.status_unklar_begruendung, pop.x, pop.y, tpop.id, tpop.nr, tpop.gemeinde, tpop.flurname, pop_status_werte_2.text, tpop.bekannt_seit, tpop.status_unklar, tpop.status_unklar_grund, tpop.x, tpop.y, tpop.radius, tpop.hoehe, tpop.exposition, tpop.klima, tpop.neigung, tpop.beschreibung, tpop.kataster_nr, tpop.apber_relevant, tpop.eigentuemer, tpop.kontakt, tpop.nutzungszone, tpop.bewirtschafter, tpop.bewirtschaftung
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr;
CREATE VIEW apflora.v_tpop_for_ap AS
SELECT tpop.id_old,
tpop.nr,
tpop.gemeinde,
tpop.flurname,
tpop.x,
tpop.y,
tpop.radius,
tpop.hoehe,
tpop.exposition,
tpop.klima,
tpop.neigung,
tpop.beschreibung,
tpop.kataster_nr,
tpop.status,
tpop.status_unklar_grund,
tpop.apber_relevant,
tpop.bekannt_seit,
tpop.eigentuemer,
tpop.kontakt,
tpop.nutzungszone,
tpop.bewirtschafter,
tpop.bewirtschaftung,
tpop.bemerkungen,
tpop.changed,
tpop.changed_by,
tpop.id,
tpop.pop_id,
tpop.status_unklar,
ap.id AS ap_id
FROM ((apflora.ap
JOIN apflora.pop ON ((ap.id = pop.ap_id)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)));
CREATE VIEW apflora.v_tpop_fuergis_read AS
SELECT (ap.id)::text AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
(pop.id)::text AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
(tpop.id)::text AS tpop_id,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
pop_status_werte_2.text AS tpop_status,
tpop.bekannt_seit AS tpop_bekannt_seit,
tpop.status_unklar AS tpop_status_unklar,
tpop.status_unklar_grund AS tpop_status_unklar_grund,
tpop.x AS tpop_x,
tpop.y AS tpop_y,
tpop.radius AS tpop_radius,
tpop.hoehe AS tpop_hoehe,
tpop.exposition AS tpop_exposition,
tpop.klima AS tpop_klima,
tpop.neigung AS tpop_neigung,
tpop.beschreibung AS tpop_beschreibung,
tpop.kataster_nr AS tpop_kataster_nr,
tpop.apber_relevant AS tpop_apber_relevant,
tpop.eigentuemer AS tpop_eigentuemer,
tpop.kontakt AS tpop_kontakt,
tpop.nutzungszone AS tpop_nutzungszone,
tpop.bewirtschafter AS tpop_bewirtschafter,
tpop.bewirtschaftung AS tpop_bewirtschaftung,
(tpop.changed)::timestamp without time zone AS tpop_changed,
tpop.changed_by AS tpop_changed_by
FROM ((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.pop_status_werte pop_status_werte_2 ON ((tpop.status = pop_status_werte_2.code)))
WHERE ((tpop.y > 0) AND (tpop.x > 0))
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr;
CREATE VIEW apflora.v_tpop_fuergis_write AS
SELECT (tpop.pop_id)::text AS pop_id,
(tpop.id)::text AS tpop_id,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
tpop.status AS tpop_status,
tpop.status_unklar AS tpop_status_unklar,
tpop.status_unklar_grund AS tpop_status_unklar_grund,
tpop.x AS tpop_x,
tpop.y AS tpop_y,
tpop.radius AS tpop_radius,
tpop.hoehe AS tpop_hoehe,
tpop.exposition AS tpop_exposition,
tpop.klima AS tpop_klima,
tpop.neigung AS tpop_neigung,
tpop.beschreibung AS tpop_beschreibung,
tpop.kataster_nr AS tpop_kataster_nr,
tpop.apber_relevant AS tpop_apber_relevant,
tpop.bekannt_seit AS tpop_bekannt_seit,
tpop.eigentuemer AS tpop_eigentuemer,
tpop.kontakt AS tpop_kontakt,
tpop.nutzungszone AS tpop_nutzungszone,
tpop.bewirtschafter AS tpop_bewirtschafter,
tpop.bewirtschaftung AS tpop_bewirtschaftung,
tpop.bemerkungen AS tpop_bemerkungen,
(tpop.changed)::timestamp without time zone AS tpop_changed,
tpop.changed_by AS tpop_changed_by
FROM apflora.tpop;
CREATE VIEW apflora.v_tpop_kml AS
SELECT ae_eigenschaften.artname AS "Art",
concat(pop.nr, '/', tpop.nr) AS "Label",
"substring"(concat('Population: ', pop.nr, ' ', pop.name, '<br /> Teilpopulation: ', tpop.nr, ' ', tpop.gemeinde, ' ', tpop.flurname), 1, 225) AS "Inhalte",
round(((((((2.6779094 + (4.728982 * (((tpop.x - 600000))::numeric / (1000000)::numeric))) + ((0.791484 * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric))) + (((0.1306 * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric))) - (((0.0436 * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.x - 600000))::numeric / (1000000)::numeric))) * (100)::numeric) / (36)::numeric), 10) AS "Laengengrad",
round((((((((16.9023892 + (3.238272 * (((tpop.y - 200000))::numeric / (1000000)::numeric))) - ((0.270978 * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.x - 600000))::numeric / (1000000)::numeric))) - ((0.002528 * (((tpop.y - 200000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric))) - (((0.0447 * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric))) - (((0.014 * (((tpop.y - 200000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric))) * (100)::numeric) / (36)::numeric), 10) AS "Breitengrad",
concat('http://www.apflora.ch/Projekte/4635372c-431c-11e8-bb30-e77f6cdd35a6/Aktionspläne/', ap.id, '/Populationen/', pop.id, '/Teil-Populationen/', tpop.id) AS url
FROM ((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpop.y IS NOT NULL) AND (tpop.y IS NOT NULL))
ORDER BY ae_eigenschaften.artname, pop.nr, pop.name, tpop.nr, tpop.gemeinde, tpop.flurname;
CREATE VIEW apflora.v_tpop_kmlnamen AS
SELECT ae_eigenschaften.artname AS "Art",
concat(ae_eigenschaften.artname, ' ', pop.nr, '/', tpop.nr) AS "Label",
"substring"(concat('Population: ', pop.nr, ' ', pop.name, '<br /> Teilpopulation: ', tpop.nr, ' ', tpop.gemeinde, ' ', tpop.flurname), 1, 225) AS "Inhalte",
round(((((((2.6779094 + (4.728982 * (((tpop.x - 600000))::numeric / (1000000)::numeric))) + ((0.791484 * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric))) + (((0.1306 * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric))) - (((0.0436 * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.x - 600000))::numeric / (1000000)::numeric))) * (100)::numeric) / (36)::numeric), 10) AS "Laengengrad",
round((((((((16.9023892 + (3.238272 * (((tpop.y - 200000))::numeric / (1000000)::numeric))) - ((0.270978 * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.x - 600000))::numeric / (1000000)::numeric))) - ((0.002528 * (((tpop.y - 200000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric))) - (((0.0447 * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.x - 600000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric))) - (((0.014 * (((tpop.y - 200000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric)) * (((tpop.y - 200000))::numeric / (1000000)::numeric))) * (100)::numeric) / (36)::numeric), 10) AS "Breitengrad",
concat('http://www.apflora.ch/Projekte/4635372c-431c-11e8-bb30-e77f6cdd35a6/Aktionspläne/', ap.id, '/Populationen/', pop.id, '/Teil-Populationen/', tpop.id) AS url
FROM ((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpop.y IS NOT NULL) AND (tpop.y IS NOT NULL))
ORDER BY ae_eigenschaften.artname, pop.nr, pop.name, tpop.nr, tpop.gemeinde, tpop.flurname;
CREATE VIEW apflora.v_tpop_kontrjahrundberjahrundmassnjahr AS
SELECT tpop.id,
tpopber.jahr AS "Jahr"
FROM (apflora.tpop
JOIN apflora.tpopber ON ((tpop.id = tpopber.tpop_id)))
UNION
SELECT tpop.id,
tpopmassnber.jahr AS "Jahr"
FROM (apflora.tpop
JOIN apflora.tpopmassnber ON ((tpop.id = tpopmassnber.tpop_id)))
UNION
SELECT tpop.id,
tpopkontr.jahr AS "Jahr"
FROM (apflora.tpop
JOIN apflora.tpopkontr ON ((tpop.id = tpopkontr.tpop_id)))
ORDER BY 2;
CREATE VIEW apflora.v_tpop_mitapaberohnestatus AS
SELECT ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
tpop.nr,
tpop.flurname,
tpop.status
FROM ((apflora.ap_bearbstand_werte
JOIN (apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id))) ON ((ap_bearbstand_werte.code = ap.bearbeitung)))
JOIN ((apflora.pop
JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpop.status IS NULL) AND (ap.bearbeitung = 3))
ORDER BY ae_eigenschaften.artname, pop.nr;
CREATE VIEW apflora.v_tpop_ohneapberichtrelevant AS
SELECT ae_eigenschaften.artname AS "Artname",
pop.nr AS pop_nr,
pop.name AS pop_name,
tpop.id,
tpop.nr,
tpop.gemeinde,
tpop.flurname,
tpop.apber_relevant
FROM (apflora.ae_eigenschaften
JOIN (apflora.ap
JOIN (apflora.pop
JOIN apflora.tpop ON ((tpop.pop_id = pop.id))) ON ((pop.ap_id = ap.id))) ON ((ae_eigenschaften.id = ap.art_id)))
WHERE (tpop.apber_relevant IS NULL)
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr;
CREATE VIEW apflora.v_tpop_ohnebekanntseit AS
SELECT ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
pop.nr AS pop_nr,
pop.name AS pop_name,
tpop.nr,
tpop.gemeinde,
tpop.flurname,
tpop.bekannt_seit
FROM (((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE ((tpop.bekannt_seit IS NULL) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3)))
ORDER BY ae_eigenschaften.artname, pop.nr, pop.name, tpop.nr, tpop.gemeinde, tpop.flurname;
CREATE VIEW apflora.v_tpop_ohnekoord AS
SELECT ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
pop.nr AS pop_nr,
pop.name AS pop_name,
tpop.nr,
tpop.gemeinde,
tpop.flurname,
tpop.x,
tpop.y
FROM (((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
WHERE (((tpop.x IS NULL) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3))) OR ((tpop.y IS NULL) AND ((ap.bearbeitung >= 1) AND (ap.bearbeitung <= 3))))
ORDER BY ae_eigenschaften.artname, pop.nr, pop.name, tpop.nr, tpop.gemeinde, tpop.flurname;
CREATE VIEW apflora.v_tpop_popberundmassnber AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
tpop.id AS tpop_id,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
"domPopHerkunft_1".text AS tpop_status,
tpop.bekannt_seit AS tpop_bekannt_seit,
tpop.status_unklar AS tpop_status_unklar,
tpop.status_unklar_grund AS tpop_status_unklar_grund,
tpop.x AS tpop_x,
tpop.y AS tpop_y,
tpop.radius AS tpop_radius,
tpop.hoehe AS tpop_hoehe,
tpop.exposition AS tpop_exposition,
tpop.klima AS tpop_klima,
tpop.neigung AS tpop_neigung,
tpop.beschreibung AS tpop_beschreibung,
tpop.kataster_nr AS tpop_kataster_nr,
tpop.apber_relevant AS tpop_apber_relevant,
tpop.eigentuemer AS tpop_eigentuemer,
tpop.kontakt AS tpop_kontakt,
tpop.nutzungszone AS tpop_nutzungszone,
tpop.bewirtschafter AS tpop_bewirtschafter,
tpop.bewirtschaftung AS tpop_bewirtschaftung,
tpopber.id AS tpopber_id,
tpopber.jahr AS tpopber_jahr,
tpop_entwicklung_werte.text AS tpopber_entwicklung,
tpopber.bemerkungen AS tpopber_bemerkungen,
tpopber.changed AS tpopber_changed,
tpopber.changed_by AS tpopber_changed_by,
tpopmassnber.id AS tpopmassnber_id,
tpopmassnber.jahr AS tpopmassnber_jahr,
tpopmassn_erfbeurt_werte.text AS tpopmassnber_entwicklung,
tpopmassnber.bemerkungen AS tpopmassnber_bemerkungen,
tpopmassnber.changed AS tpopmassnber_changed,
tpopmassnber.changed_by AS tpopmassnber_changed_by
FROM (((((((((((apflora.ae_eigenschaften
RIGHT JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
RIGHT JOIN (apflora.pop
RIGHT JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.pop_status_werte "domPopHerkunft_1" ON ((tpop.status = "domPopHerkunft_1".code)))
LEFT JOIN apflora.v_tpop_berjahrundmassnjahr ON ((tpop.id = v_tpop_berjahrundmassnjahr.id)))
LEFT JOIN apflora.tpopmassnber ON (((v_tpop_berjahrundmassnjahr.id = tpopmassnber.tpop_id) AND (v_tpop_berjahrundmassnjahr.jahr = tpopmassnber.jahr))))
LEFT JOIN apflora.tpopmassn_erfbeurt_werte ON ((tpopmassnber.beurteilung = tpopmassn_erfbeurt_werte.code)))
LEFT JOIN apflora.tpopber ON (((v_tpop_berjahrundmassnjahr.jahr = tpopber.jahr) AND (v_tpop_berjahrundmassnjahr.id = tpopber.tpop_id))))
LEFT JOIN apflora.tpop_entwicklung_werte ON ((tpopber.entwicklung = tpop_entwicklung_werte.code)))
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, v_tpop_berjahrundmassnjahr.jahr;
CREATE VIEW apflora.v_tpopber_letzterber AS
SELECT tpopber.tpop_id,
max(tpopber.jahr) AS jahr
FROM apflora.tpopber
GROUP BY tpopber.tpop_id;
CREATE VIEW apflora.v_tpop_statuswidersprichtbericht AS
SELECT ae_eigenschaften.artname AS "Art",
ap_bearbstand_werte.text AS "Bearbeitungsstand AP",
pop.nr AS pop_nr,
pop.name AS pop_name,
tpop.nr,
tpop.gemeinde,
tpop.flurname,
tpop.status,
tpopber.entwicklung AS "TPopBerEntwicklung",
tpopber.jahr AS tpopber_jahr
FROM (((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopber
JOIN apflora.v_tpopber_letzterber ON (((tpopber.tpop_id = v_tpopber_letzterber.tpop_id) AND (tpopber.jahr = v_tpopber_letzterber.jahr)))) ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
WHERE (((ap.bearbeitung < 4) AND ((tpop.status = 101) OR (tpop.status = 202)) AND (tpopber.entwicklung <> 8)) OR ((ap.bearbeitung < 4) AND (tpop.status <> ALL (ARRAY[101, 202])) AND (tpopber.entwicklung = 8)))
ORDER BY ae_eigenschaften.artname, pop.nr, pop.name, tpop.nr, tpop.gemeinde, tpop.flurname;
CREATE VIEW apflora.v_tpop_webgisbun AS
SELECT ap.id AS "APARTID",
ae_eigenschaften.artname AS "APART",
ap_bearbstand_werte.text AS "APSTATUS",
ap.start_jahr AS "APSTARTJAHR",
ap_umsetzung_werte.text AS "APSTANDUMSETZUNG",
pop.id AS "POPGUID",
pop.nr AS "POPNR",
pop.name AS "POPNAME",
pop_status_werte.text AS "POPSTATUS",
pop.status_unklar AS "POPSTATUSUNKLAR",
pop.status_unklar_begruendung AS "POPUNKLARGRUND",
pop.bekannt_seit AS "POPBEKANNTSEIT",
pop.x AS "POP_X",
pop.y AS "POP_Y",
tpop.id AS "TPOPID",
tpop.id AS "TPOPGUID",
tpop.nr AS "TPOPNR",
tpop.gemeinde AS "TPOPGEMEINDE",
tpop.flurname AS "TPOPFLURNAME",
pop_status_werte_2.text AS "TPOPSTATUS",
tpop.status_unklar AS "TPOPSTATUSUNKLAR",
tpop.status_unklar_grund AS "TPOPUNKLARGRUND",
tpop.x AS "TPOP_X",
tpop.y AS "TPOP_Y",
tpop.radius AS "TPOPRADIUS",
tpop.hoehe AS "TPOPHOEHE",
tpop.exposition AS "TPOPEXPOSITION",
tpop.klima AS "TPOPKLIMA",
tpop.neigung AS "TPOPHANGNEIGUNG",
tpop.beschreibung AS "TPOPBESCHREIBUNG",
tpop.kataster_nr AS "TPOPKATASTERNR",
adresse.name AS "TPOPVERANTWORTLICH",
tpop.apber_relevant AS "TPOPBERICHTSRELEVANZ",
tpop.bekannt_seit AS "TPOPBEKANNTSEIT",
tpop.eigentuemer AS "TPOPEIGENTUEMERIN",
tpop.kontakt AS "TPOPKONTAKT_VO",
tpop.nutzungszone AS "TPOP_NUTZUNGSZONE",
tpop.bewirtschafter AS "TPOPBEWIRTSCHAFTER",
tpop.bewirtschaftung AS "TPOPBEWIRTSCHAFTUNG",
to_char((tpop.changed)::timestamp with time zone, 'DD.MM.YY'::text) AS "TPOPCHANGEDAT",
tpop.changed_by AS "TPOPCHANGEBY"
FROM (((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.pop_status_werte pop_status_werte_2 ON ((tpop.status = pop_status_werte_2.code)))
LEFT JOIN apflora.adresse ON ((ap.bearbeiter = adresse.id)))
WHERE (ae_eigenschaften.taxid > 150)
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr;
CREATE VIEW apflora.v_tpopber AS
SELECT ap.id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
tpop.id AS tpop_id,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
tpop_status_werte.text AS tpop_status,
tpop.bekannt_seit AS tpop_bekannt_seit,
tpop.status_unklar AS tpop_status_unklar,
tpop.status_unklar_grund AS tpop_status_unklar_grund,
tpop.x AS tpop_x,
tpop.y AS tpop_y,
tpop.radius AS tpop_radius,
tpop.hoehe AS tpop_hoehe,
tpop.exposition AS tpop_exposition,
tpop.klima AS tpop_klima,
tpop.neigung AS tpop_neigung,
tpop.beschreibung AS tpop_beschreibung,
tpop.kataster_nr AS tpop_kataster_nr,
tpop.apber_relevant AS tpop_apber_relevant,
tpop.eigentuemer AS tpop_eigentuemer,
tpop.kontakt AS tpop_kontakt,
tpop.nutzungszone AS tpop_nutzungszone,
tpop.bewirtschafter AS tpop_bewirtschafter,
tpop.bewirtschaftung AS tpop_bewirtschaftung,
tpopber.id AS tpopber_id,
tpopber.jahr AS tpopber_jahr,
tpop_entwicklung_werte.text AS tpopber_entwicklung,
tpopber.bemerkungen AS tpopber_bemerkungen,
tpopber.changed AS tpopber_changed,
tpopber.changed_by AS tpopber_changed_by
FROM (apflora.ae_eigenschaften
JOIN (((apflora.ap
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
JOIN ((apflora.pop
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
JOIN ((apflora.tpop
LEFT JOIN apflora.pop_status_werte tpop_status_werte ON ((tpop.status = tpop_status_werte.code)))
RIGHT JOIN (apflora.tpopber
LEFT JOIN apflora.tpop_entwicklung_werte ON ((tpopber.entwicklung = tpop_entwicklung_werte.code))) ON ((tpop.id = tpopber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, tpopber.jahr, tpop_entwicklung_werte.text;
CREATE VIEW apflora.v_tpopkontr_fuergis_read AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS apherkunft,
ap.start_jahr AS apjahr,
ap_umsetzung_werte.text AS apumsetzung,
(pop.id)::character varying(50) AS popid,
pop.nr AS popnr,
pop.name AS popname,
pop_status_werte.text AS popherkunft,
pop.bekannt_seit AS popbekanntseit,
(tpop.id)::character varying(50) AS tpopid,
tpop.nr AS tpopnr,
tpop.gemeinde AS tpopgemeinde,
tpop.flurname AS tpopflurname,
tpop.x AS tpopxkoord,
tpop.y AS tpopykoord,
tpop.bekannt_seit AS tpopbekanntseit,
(tpopkontr.id)::character varying(50) AS tpopkontrid,
tpopkontr.jahr AS tpopkontrjahr,
(tpopkontr.datum)::timestamp without time zone AS tpopkontrdatum,
tpopkontr_typ_werte.text AS tpopkontrtyp,
adresse.name AS tpopkontrbearb,
tpopkontr.ueberlebensrate AS tpopkontrueberleb,
tpopkontr.vitalitaet AS tpopkontrvitalitaet,
tpop_entwicklung_werte.text AS tpopkontrentwicklung,
tpopkontr.ursachen AS tpopkontrursach,
tpopkontr.erfolgsbeurteilung AS tpopkontrurteil,
tpopkontr.umsetzung_aendern AS tpopkontraendums,
tpopkontr.kontrolle_aendern AS tpopkontraendkontr,
tpopkontr.lr_delarze AS tpopkontrleb,
tpopkontr.flaeche AS tpopkontrflaeche,
tpopkontr.lr_umgebung_delarze AS tpopkontrlebumg,
tpopkontr.vegetationstyp AS tpopkontrvegtyp,
tpopkontr.konkurrenz AS tpopkontrkonkurrenz,
tpopkontr.moosschicht AS tpopkontrmoosschicht,
tpopkontr.krautschicht AS tpopkontrkrautschicht,
tpopkontr.strauchschicht AS tpopkontrstrauchschicht,
tpopkontr.baumschicht AS tpopkontrbaumschicht,
tpopkontr.boden_typ AS tpopkontrbodentyp,
tpopkontr.boden_kalkgehalt AS tpopkontrbodenkalkgehalt,
tpopkontr.boden_durchlaessigkeit AS tpopkontrbodendurchlaessigkeit,
tpopkontr.boden_humus AS tpopkontrbodenhumus,
tpopkontr.boden_naehrstoffgehalt AS tpopkontrbodennaehrstoffgehalt,
tpopkontr.boden_abtrag AS tpopkontrbodenabtrag,
tpopkontr.wasserhaushalt AS tpopkontrwasserhaushalt,
tpopkontr_idbiotuebereinst_werte.text AS tpopkontridealbiotopuebereinst,
tpopkontr.flaeche_ueberprueft AS tpopkontruebflaeche,
tpopkontr.plan_vorhanden AS tpopkontrplan,
tpopkontr.deckung_vegetation AS tpopkontrveg,
tpopkontr.deckung_nackter_boden AS tpopkontrnabo,
tpopkontr.deckung_ap_art AS tpopkontruebpfl,
tpopkontr.jungpflanzen_vorhanden AS tpopkontrjungpfljn,
tpopkontr.vegetationshoehe_maximum AS tpopkontrveghoemax,
tpopkontr.vegetationshoehe_mittel AS tpopkontrveghoemit,
tpopkontr.gefaehrdung AS tpopkontrgefaehrdung,
(tpopkontr.changed)::timestamp without time zone AS mutwann,
tpopkontr.changed_by AS mutwer
FROM ((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (((apflora.tpopkontr
LEFT JOIN apflora.tpopkontr_typ_werte ON (((tpopkontr.typ)::text = (tpopkontr_typ_werte.text)::text)))
LEFT JOIN apflora.adresse ON ((tpopkontr.bearbeiter = adresse.id)))
LEFT JOIN apflora.tpop_entwicklung_werte ON ((tpopkontr.entwicklung = tpop_entwicklung_werte.code))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.tpopkontr_idbiotuebereinst_werte ON ((tpopkontr.idealbiotop_uebereinstimmung = tpopkontr_idbiotuebereinst_werte.code)))
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, tpopkontr.jahr, tpopkontr.datum;
CREATE VIEW apflora.v_tpopkontr_fuergis_write AS
SELECT (tpopkontr.id)::text AS id,
tpopkontr.typ,
tpopkontr.jahr,
(tpopkontr.datum)::timestamp without time zone AS datum,
tpopkontr.bearbeiter,
tpopkontr.jungpflanzen_anzahl,
tpopkontr.ueberlebensrate,
tpopkontr.entwicklung,
tpopkontr.vitalitaet,
tpopkontr.ursachen,
tpopkontr.erfolgsbeurteilung,
tpopkontr.umsetzung_aendern,
tpopkontr.kontrolle_aendern,
tpopkontr.lr_delarze,
tpopkontr.flaeche,
tpopkontr.lr_umgebung_delarze,
tpopkontr.vegetationstyp,
tpopkontr.konkurrenz,
tpopkontr.moosschicht,
tpopkontr.krautschicht,
tpopkontr.strauchschicht,
tpopkontr.baumschicht,
tpopkontr.boden_typ,
tpopkontr.boden_kalkgehalt,
tpopkontr.boden_durchlaessigkeit,
tpopkontr.boden_humus,
tpopkontr.boden_naehrstoffgehalt,
tpopkontr.boden_abtrag,
tpopkontr.wasserhaushalt,
tpopkontr.idealbiotop_uebereinstimmung,
tpopkontr.flaeche_ueberprueft,
tpopkontr.plan_vorhanden,
tpopkontr.deckung_vegetation,
tpopkontr.deckung_nackter_boden,
tpopkontr.deckung_ap_art,
tpopkontr.jungpflanzen_vorhanden,
tpopkontr.vegetationshoehe_maximum,
tpopkontr.vegetationshoehe_mittel,
tpopkontr.gefaehrdung,
tpopkontr.bemerkungen,
(tpopkontr.changed)::timestamp without time zone AS changed,
tpopkontr.changed_by
FROM apflora.tpopkontr;
CREATE VIEW apflora.v_tpopkontr_webgisbun AS
SELECT ap.id AS "APARTID",
ae_eigenschaften.artname AS "APART",
pop.id AS "POPGUID",
pop.nr AS "POPNR",
tpop.id AS "TPOPGUID",
tpop.nr AS "TPOPNR",
tpopkontr.id AS "KONTRGUID",
tpopkontr.jahr AS "KONTRJAHR",
to_char((tpopkontr.datum)::timestamp with time zone, 'DD.MM.YY'::text) AS "KONTRDAT",
tpopkontr_typ_werte.text AS "KONTRTYP",
pop_status_werte_2.text AS "TPOPSTATUS",
adresse.name AS "KONTRBEARBEITER",
tpopkontr.ueberlebensrate AS "KONTRUEBERLEBENSRATE",
tpopkontr.vitalitaet AS "KONTRVITALITAET",
tpop_entwicklung_werte.text AS "KONTRENTWICKLUNG",
tpopkontr.ursachen AS "KONTRURSACHEN",
tpopkontr.erfolgsbeurteilung AS "KONTRERFOLGBEURTEIL",
tpopkontr.umsetzung_aendern AS "KONTRAENDUMSETZUNG",
tpopkontr.kontrolle_aendern AS "KONTRAENDKONTROLLE",
tpop.x AS "KONTR_X",
tpop.y AS "KONTR_Y",
tpopkontr.bemerkungen AS "KONTRBEMERKUNGEN",
tpopkontr.lr_delarze AS "KONTRLRMDELARZE",
tpopkontr.lr_umgebung_delarze AS "KONTRDELARZEANGRENZ",
tpopkontr.vegetationstyp AS "KONTRVEGTYP",
tpopkontr.konkurrenz AS "KONTRKONKURRENZ",
tpopkontr.moosschicht AS "KONTRMOOSE",
tpopkontr.krautschicht AS "KONTRKRAUTSCHICHT",
tpopkontr.strauchschicht AS "KONTRSTRAUCHSCHICHT",
tpopkontr.baumschicht AS "KONTRBAUMSCHICHT",
tpopkontr.boden_typ AS "KONTRBODENTYP",
tpopkontr.boden_kalkgehalt AS "KONTRBODENKALK",
tpopkontr.boden_durchlaessigkeit AS "KONTRBODENDURCHLAESSIGK",
tpopkontr.boden_humus AS "KONTRBODENHUMUS",
tpopkontr.boden_naehrstoffgehalt AS "KONTRBODENNAEHRSTOFF",
tpopkontr.boden_abtrag AS "KONTROBERBODENABTRAG",
tpopkontr.wasserhaushalt AS "KONTROBODENWASSERHAUSHALT",
tpopkontr_idbiotuebereinst_werte.text AS "KONTRUEBEREINSTIMMUNIDEAL",
tpopkontr.handlungsbedarf AS "KONTRHANDLUNGSBEDARF",
tpopkontr.flaeche_ueberprueft AS "KONTRUEBERPRUFTFLAECHE",
tpopkontr.flaeche AS "KONTRFLAECHETPOP",
tpopkontr.plan_vorhanden AS "KONTRAUFPLAN",
tpopkontr.deckung_vegetation AS "KONTRDECKUNGVEG",
tpopkontr.deckung_nackter_boden AS "KONTRDECKUNGBODEN",
tpopkontr.deckung_ap_art AS "KONTRDECKUNGART",
tpopkontr.jungpflanzen_vorhanden AS "KONTRJUNGEPLANZEN",
tpopkontr.vegetationshoehe_maximum AS "KONTRMAXHOEHEVEG",
tpopkontr.vegetationshoehe_mittel AS "KONTRMITTELHOEHEVEG",
tpopkontr.gefaehrdung AS "KONTRGEFAEHRDUNG",
to_char((tpopkontr.changed)::timestamp with time zone, 'DD.MM.YY'::text) AS "KONTRCHANGEDAT",
tpopkontr.changed_by AS "KONTRCHANGEBY",
string_agg((tpopkontrzaehl_einheit_werte.text)::text, ', '::text) AS "ZAEHLEINHEITEN",
array_to_string(array_agg(tpopkontrzaehl.anzahl), ', '::text) AS "ANZAHLEN",
string_agg((tpopkontrzaehl_methode_werte.text)::text, ', '::text) AS "METHODEN"
FROM (((((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (apflora.pop
JOIN ((apflora.tpop
LEFT JOIN apflora.pop_status_werte pop_status_werte_2 ON ((tpop.status = pop_status_werte_2.code)))
JOIN ((((((apflora.tpopkontr
LEFT JOIN apflora.tpopkontr_typ_werte ON (((tpopkontr.typ)::text = (tpopkontr_typ_werte.text)::text)))
LEFT JOIN apflora.adresse ON ((tpopkontr.bearbeiter = adresse.id)))
LEFT JOIN apflora.tpop_entwicklung_werte ON ((tpopkontr.entwicklung = tpop_entwicklung_werte.code)))
LEFT JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id)))
LEFT JOIN apflora.tpopkontrzaehl_einheit_werte ON ((tpopkontrzaehl.einheit = tpopkontrzaehl_einheit_werte.code)))
LEFT JOIN apflora.tpopkontrzaehl_methode_werte ON ((tpopkontrzaehl.methode = tpopkontrzaehl_methode_werte.code))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
LEFT JOIN apflora.tpopkontr_idbiotuebereinst_werte ON ((tpopkontr.idealbiotop_uebereinstimmung = tpopkontr_idbiotuebereinst_werte.code)))
LEFT JOIN apflora.adresse apflora_adresse_1 ON ((ap.bearbeiter = apflora_adresse_1.id)))
WHERE (ae_eigenschaften.taxid > 150)
GROUP BY ap.id, ae_eigenschaften.artname, pop.id, pop.nr, tpop.id, tpop.nr, tpopkontr.tpop_id, tpopkontr.id, tpopkontr.jahr, tpopkontr.datum, tpopkontr_typ_werte.text, pop_status_werte_2.text, adresse.name, tpopkontr.ueberlebensrate, tpopkontr.vitalitaet, tpop_entwicklung_werte.text, tpopkontr.ursachen, tpopkontr.erfolgsbeurteilung, tpopkontr.umsetzung_aendern, tpopkontr.kontrolle_aendern, tpop.x, tpop.y, tpopkontr.bemerkungen, tpopkontr.lr_delarze, tpopkontr.lr_umgebung_delarze, tpopkontr.vegetationstyp, tpopkontr.konkurrenz, tpopkontr.moosschicht, tpopkontr.krautschicht, tpopkontr.strauchschicht, tpopkontr.baumschicht, tpopkontr.boden_typ, tpopkontr.boden_kalkgehalt, tpopkontr.boden_durchlaessigkeit, tpopkontr.boden_humus, tpopkontr.boden_naehrstoffgehalt, tpopkontr.boden_abtrag, tpopkontr.wasserhaushalt, tpopkontr_idbiotuebereinst_werte.text, tpopkontr.handlungsbedarf, tpopkontr.flaeche_ueberprueft, tpopkontr.flaeche, tpopkontr.plan_vorhanden, tpopkontr.deckung_vegetation, tpopkontr.deckung_nackter_boden, tpopkontr.deckung_ap_art, tpopkontr.jungpflanzen_vorhanden, tpopkontr.vegetationshoehe_maximum, tpopkontr.vegetationshoehe_mittel, tpopkontr.gefaehrdung, tpopkontr.changed, tpopkontr.changed_by
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr;
CREATE VIEW apflora.v_tpopkoord AS
SELECT DISTINCT pop.ap_id,
pop.id AS pop_id,
pop.nr AS pop_nr,
tpop.id,
tpop.nr,
tpop.x,
tpop.y,
tpop.apber_relevant
FROM (apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
WHERE ((tpop.x IS NOT NULL) AND (tpop.y IS NOT NULL));
CREATE VIEW apflora.v_tpopmassn_0 AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname AS "Art",
ap_bearbstand_werte.text AS "Aktionsplan Bearbeitungsstand",
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
tpop.id AS tpop_id,
tpop.nr AS tpop_nr,
tpop.flurname AS tpop_flurname,
tpopmassn.id,
tpopmassn.jahr AS "Jahr",
tpopmassn_typ_werte.text AS "Massnahme",
tpopmassn.beschreibung,
tpopmassn.datum,
adresse.name AS bearbeiter,
tpopmassn.bemerkungen,
tpopmassn.plan_vorhanden,
tpopmassn.plan_bezeichnung,
tpopmassn.flaeche,
tpopmassn.markierung,
tpopmassn.anz_triebe,
tpopmassn.anz_pflanzen,
tpopmassn.anz_pflanzstellen,
tpopmassn.wirtspflanze,
tpopmassn.herkunft_pop,
tpopmassn.sammeldatum,
tpopmassn.form,
tpopmassn.pflanzanordnung
FROM (((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
JOIN ((apflora.pop
JOIN apflora.tpop ON ((pop.id = tpop.pop_id)))
JOIN ((apflora.tpopmassn
LEFT JOIN apflora.tpopmassn_typ_werte ON ((tpopmassn.typ = tpopmassn_typ_werte.code)))
LEFT JOIN apflora.adresse ON ((tpopmassn.bearbeiter = adresse.id))) ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, tpopmassn.jahr, tpopmassn_typ_werte.text;
CREATE VIEW apflora.v_tpopmassn_fueraktap0 AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname AS "Art",
ap_bearbstand_werte.text AS "Aktionsplan-Status",
ap.start_jahr AS "Aktionsplan-Jahr",
ap_umsetzung_werte.text AS "Aktionsplan-Umsetzung",
pop.id AS pop_id,
pop.nr AS "Population-Nr",
pop.name AS "Population-Name",
pop_status_werte.text AS "Population-Herkunft",
pop.bekannt_seit AS "Population - bekannt seit",
tpop.id AS tpop_id,
tpop.nr AS "Teilpopulation-Nr",
tpop.gemeinde AS "Teilpopulation-Gemeinde",
tpop.flurname AS "Teilpopulation-Flurname",
tpop.x AS "Teilpopulation-X-Koodinate",
tpop.y AS "Teilpopulation-Y-Koordinate",
tpop.radius AS "Teilpopulation-Radius",
tpop.hoehe AS "Teilpopulation-Höhe",
tpop.beschreibung AS "Teilpopulation-Beschreibung",
tpop.kataster_nr AS "Teilpopulation-Kataster-Nr",
pop_status_werte_2.text AS "Teilpopulation-Herkunft",
tpop.status_unklar AS "Teilpopulation - Herkunft unklar",
tpop.status_unklar_grund AS "Teilpopulation - Herkunft unklar Begruendung",
tpop_apberrelevant_werte.text AS "Teilpopulation - Fuer Bericht relevant",
tpop.bekannt_seit AS "Teilpopulation - bekannt seit",
tpop.eigentuemer AS "Teilpopulation-Eigentuemer",
tpop.kontakt AS "Teilpopulation-Kontakt",
tpop.nutzungszone AS "Teilpopulation-Nutzungszone",
tpop.bewirtschafter AS "Teilpopulation-Bewirtschafter",
tpop.bewirtschaftung AS "Teilpopulation-Bewirtschaftung",
tpop.bemerkungen AS "Teilpopulation-Bemerkungen",
tpopmassn.id,
tpopmassn_typ_werte.text AS "Massnahme-Typ",
tpopmassn.beschreibung AS "Massnahme-Beschreibung",
tpopmassn.datum AS "Massnahme-Datum",
adresse.name AS "Massnahme-BearbeiterIn",
tpopmassn.bemerkungen AS "Massnahme-Bemerkungen",
tpopmassn.plan_vorhanden AS "Massnahme-Plan",
tpopmassn.plan_bezeichnung AS "Massnahme-Planbezeichnung",
tpopmassn.flaeche AS "Massnahme-Flaeche",
tpopmassn.markierung AS "Massnahme-Markierung",
tpopmassn.anz_triebe AS "Massnahme - Ansiedlung Anzahl Triebe",
tpopmassn.anz_pflanzen AS "Massnahme - Ansiedlung Anzahl Pflanzen",
tpopmassn.anz_pflanzstellen AS "Massnahme - Ansiedlung Anzahl Pflanzstellen",
tpopmassn.wirtspflanze AS "Massnahme - Ansiedlung Wirtspflanzen",
tpopmassn.herkunft_pop AS "Massnahme - Ansiedlung Herkunftspopulation",
tpopmassn.sammeldatum AS "Massnahme - Ansiedlung Sammeldatum",
tpopmassn.form AS "Massnahme - Ansiedlung Form",
tpopmassn.pflanzanordnung AS "Massnahme - Ansiedlung Pflanzordnung"
FROM ((apflora.ae_eigenschaften
JOIN ((apflora.ap
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code))) ON ((ae_eigenschaften.id = ap.art_id)))
JOIN (((apflora.pop
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
JOIN ((apflora.tpop
LEFT JOIN apflora.pop_status_werte pop_status_werte_2 ON ((tpop.status = pop_status_werte_2.code)))
LEFT JOIN apflora.tpop_apberrelevant_werte ON ((tpop.apber_relevant = tpop_apberrelevant_werte.code))) ON ((pop.id = tpop.pop_id)))
JOIN ((apflora.tpopmassn
LEFT JOIN apflora.tpopmassn_typ_werte ON ((tpopmassn.typ = tpopmassn_typ_werte.code)))
LEFT JOIN apflora.adresse ON ((tpopmassn.bearbeiter = adresse.id))) ON ((tpop.id = tpopmassn.tpop_id))) ON ((ap.id = pop.ap_id)))
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, tpopmassn_typ_werte.text;
CREATE VIEW apflora.v_tpopmassnber AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
pop.id AS pop_id,
pop.nr AS pop_nr,
pop.name AS pop_name,
pop_status_werte.text AS pop_status,
pop.bekannt_seit AS pop_bekannt_seit,
pop.status_unklar AS pop_status_unklar,
pop.status_unklar_begruendung AS pop_status_unklar_begruendung,
pop.x AS pop_x,
pop.y AS pop_y,
tpop.id AS tpop_id,
tpop.nr AS tpop_nr,
tpop.gemeinde AS tpop_gemeinde,
tpop.flurname AS tpop_flurname,
tpop_status_werte.text AS tpop_status,
tpop.bekannt_seit AS tpop_bekannt_seit,
tpop.status_unklar AS tpop_status_unklar,
tpop.status_unklar_grund AS tpop_status_unklar_grund,
tpop.x AS tpop_x,
tpop.y AS tpop_y,
tpop.radius AS tpop_radius,
tpop.hoehe AS tpop_hoehe,
tpop.exposition AS tpop_exposition,
tpop.klima AS tpop_klima,
tpop.neigung AS tpop_neigung,
tpop.beschreibung AS tpop_beschreibung,
tpop.kataster_nr AS tpop_kataster_nr,
tpop.apber_relevant AS tpop_apber_relevant,
tpop.eigentuemer AS tpop_eigentuemer,
tpop.kontakt AS tpop_kontakt,
tpop.nutzungszone AS tpop_nutzungszone,
tpop.bewirtschafter AS tpop_bewirtschafter,
tpop.bewirtschaftung AS tpop_bewirtschaftung,
tpopmassnber.id,
tpopmassnber.jahr,
tpopmassn_erfbeurt_werte.text AS entwicklung,
tpopmassnber.bemerkungen,
tpopmassnber.changed,
tpopmassnber.changed_by
FROM (apflora.ae_eigenschaften
JOIN (((apflora.ap
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
JOIN ((apflora.pop
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
JOIN ((apflora.tpop
LEFT JOIN apflora.pop_status_werte tpop_status_werte ON ((tpop.status = tpop_status_werte.code)))
JOIN (apflora.tpopmassnber
LEFT JOIN apflora.tpopmassn_erfbeurt_werte ON ((tpopmassnber.beurteilung = tpopmassn_erfbeurt_werte.code))) ON ((tpop.id = tpopmassnber.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id))) ON ((ae_eigenschaften.id = ap.art_id)))
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, tpopmassnber.jahr;
CREATE VIEW apflora.v_tpopmassnber_fueraktap0 AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname AS "Art",
ap_bearbstand_werte.text AS "Aktionsplan-Status",
ap.start_jahr AS "Aktionsplan-Jahr",
ap_umsetzung_werte.text AS "Aktionsplan-Umsetzung",
pop.nr AS "Population-Nr",
pop.name AS "Population-Name",
pop_status_werte.text AS "Population-Herkunft",
pop.bekannt_seit AS "Population - bekannt seit",
tpop.nr AS "Teilpopulation-Nr",
tpop.gemeinde AS "Teilpopulation-Gemeinde",
tpop.flurname AS "Teilpopulation-Flurname",
tpop.x AS "Teilpopulation-X-Koodinate",
tpop.y AS "Teilpopulation-Y-Koordinate",
tpop.radius AS "Teilpopulation-Radius",
tpop.hoehe AS "Teilpopulation-Hoehe",
tpop.beschreibung AS "Teilpopulation-Beschreibung",
tpop.kataster_nr AS "Teilpopulation-Kataster-Nr",
pop_status_werte_2.text AS "Teilpopulation-Herkunft",
tpop.status_unklar AS "Teilpopulation - Herkunft unklar",
tpop.status_unklar_grund AS "Teilpopulation - Herkunft unklar Begruendung",
tpop_apberrelevant_werte.text AS "Teilpopulation - Fuer Bericht relevant",
tpop.bekannt_seit AS "Teilpopulation - bekannt seit",
tpop.eigentuemer AS "Teilpopulation-Eigentuemer",
tpop.kontakt AS "Teilpopulation-Kontakt",
tpop.nutzungszone AS "Teilpopulation-Nutzungszone",
tpop.bewirtschafter AS "Teilpopulation-Bewirtschafter",
tpop.bewirtschaftung AS "Teilpopulation-Bewirtschaftung",
tpop.bemerkungen AS "Teilpopulation-Bemerkungen",
tpopmassnber.jahr AS "Massnahmenbericht-Jahr",
tpopmassn_erfbeurt_werte.text AS "Massnahmenbericht-Erfolgsberuteilung",
tpopmassnber.bemerkungen AS "Massnahmenbericht-Interpretation"
FROM ((((apflora.ae_eigenschaften
JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
JOIN (((apflora.pop
LEFT JOIN apflora.pop_status_werte ON ((pop.status = pop_status_werte.code)))
JOIN ((apflora.tpop
LEFT JOIN apflora.pop_status_werte pop_status_werte_2 ON ((tpop.status = pop_status_werte_2.code)))
LEFT JOIN apflora.tpop_apberrelevant_werte ON ((tpop.apber_relevant = tpop_apberrelevant_werte.code))) ON ((pop.id = tpop.pop_id)))
JOIN (apflora.tpopmassnber
JOIN apflora.tpopmassn_erfbeurt_werte ON ((tpopmassnber.beurteilung = tpopmassn_erfbeurt_werte.code))) ON ((tpop.id = tpopmassnber.tpop_id))) ON ((ap.id = pop.ap_id)))
ORDER BY ae_eigenschaften.artname, pop.nr, tpop.nr, tpopmassnber.jahr;
CREATE VIEW apflora.v_ziel AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
adresse.name AS ap_bearbeiter,
ziel.id,
ziel.jahr,
ziel_typ_werte.text AS typ,
ziel.bezeichnung
FROM ((((((apflora.ae_eigenschaften
RIGHT JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.adresse ON ((ap.bearbeiter = adresse.id)))
RIGHT JOIN apflora.ziel ON ((ap.id = ziel.ap_id)))
LEFT JOIN apflora.ziel_typ_werte ON ((ziel.typ = ziel_typ_werte.code)))
WHERE (ziel.typ = ANY (ARRAY[1, 2, 1170775556]))
ORDER BY ae_eigenschaften.artname, ziel.jahr, ziel_typ_werte.text, ziel.typ;
CREATE VIEW apflora.v_zielber AS
SELECT ap.id AS ap_id,
ae_eigenschaften.artname,
ap_bearbstand_werte.text AS ap_bearbeitung,
ap.start_jahr AS ap_start_jahr,
ap_umsetzung_werte.text AS ap_umsetzung,
adresse.name AS ap_bearbeiter,
ziel.id AS ziel_id,
ziel.jahr AS ziel_jahr,
ziel_typ_werte.text AS ziel_typ,
ziel.bezeichnung AS ziel_bezeichnung,
zielber.id,
zielber.jahr,
zielber.erreichung,
zielber.bemerkungen,
zielber.changed,
zielber.changed_by
FROM (((((((apflora.ae_eigenschaften
RIGHT JOIN apflora.ap ON ((ae_eigenschaften.id = ap.art_id)))
LEFT JOIN apflora.ap_bearbstand_werte ON ((ap.bearbeitung = ap_bearbstand_werte.code)))
LEFT JOIN apflora.ap_umsetzung_werte ON ((ap.umsetzung = ap_umsetzung_werte.code)))
LEFT JOIN apflora.adresse ON ((ap.bearbeiter = adresse.id)))
RIGHT JOIN apflora.ziel ON ((ap.id = ziel.ap_id)))
LEFT JOIN apflora.ziel_typ_werte ON ((ziel.typ = ziel_typ_werte.code)))
RIGHT JOIN apflora.zielber ON ((ziel.id = zielber.ziel_id)))
ORDER BY ae_eigenschaften.artname, ziel.jahr, ziel_typ_werte.text, ziel.typ, zielber.jahr;
CREATE SEQUENCE apflora."ziel_ZielId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."ziel_ZielId_seq" OWNED BY apflora.ziel.id_old;
CREATE SEQUENCE apflora."zielber_ZielBerId_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER SEQUENCE apflora."zielber_ZielBerId_seq" OWNED BY apflora.zielber.id_old;
CREATE TABLE public.migrations (
id integer NOT NULL,
name character varying(100) NOT NULL,
hash character varying(40) NOT NULL,
executed_at timestamp without time zone DEFAULT now()
);
ALTER TABLE ONLY apflora._variable ALTER COLUMN "KonstId" SET DEFAULT nextval('apflora."_variable_KonstId_seq"'::regclass);
ALTER TABLE ONLY apflora._variable
ADD CONSTRAINT _variable_pkey PRIMARY KEY ("KonstId");
ALTER TABLE ONLY apflora.ae_eigenschaften
ADD CONSTRAINT "adb_eigenschaften_TaxonomieId_key" UNIQUE (taxid);
ALTER TABLE ONLY apflora.ae_eigenschaften
ADD CONSTRAINT adb_eigenschaften_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.ae_lrdelarze
ADD CONSTRAINT adb_lr_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.adresse
ADD CONSTRAINT adresse_id_key UNIQUE (id);
ALTER TABLE ONLY apflora.adresse
ADD CONSTRAINT adresse_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.ap
ADD CONSTRAINT ap_art_key UNIQUE (art_id);
ALTER TABLE ONLY apflora.ap_bearbstand_werte
ADD CONSTRAINT ap_bearbstand_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.ap_bearbstand_werte
ADD CONSTRAINT ap_bearbstand_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.ap_erfbeurtkrit_werte
ADD CONSTRAINT ap_erfbeurtkrit_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.ap_erfbeurtkrit_werte
ADD CONSTRAINT ap_erfbeurtkrit_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.ap_erfkrit_werte
ADD CONSTRAINT ap_erfkrit_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.ap_erfkrit_werte
ADD CONSTRAINT ap_erfkrit_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.ap
ADD CONSTRAINT ap_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.ap_umsetzung_werte
ADD CONSTRAINT ap_umsetzung_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.ap_umsetzung_werte
ADD CONSTRAINT ap_umsetzung_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.apber
ADD CONSTRAINT apber_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.apberuebersicht
ADD CONSTRAINT apberuebersicht_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.assozart
ADD CONSTRAINT assozart_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.beob
ADD CONSTRAINT beob_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.beob_quelle_werte
ADD CONSTRAINT beob_quelle_werte_id_key UNIQUE (id);
ALTER TABLE ONLY apflora.beob_quelle_werte
ADD CONSTRAINT beob_quelle_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.apart
ADD CONSTRAINT beobart_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.ber
ADD CONSTRAINT ber_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.erfkrit
ADD CONSTRAINT erfkrit_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.evab_typologie
ADD CONSTRAINT evab_typologie_pkey PRIMARY KEY ("TYPO");
ALTER TABLE ONLY apflora.gemeinde
ADD CONSTRAINT gemeinde_id_key UNIQUE (id);
ALTER TABLE ONLY apflora.gemeinde
ADD CONSTRAINT gemeinde_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.idealbiotop
ADD CONSTRAINT idealbiotop_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.message
ADD CONSTRAINT message_id_key UNIQUE (id);
ALTER TABLE ONLY apflora.message
ADD CONSTRAINT message_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.pop
ADD CONSTRAINT pop_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.pop_status_werte
ADD CONSTRAINT pop_status_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.pop_status_werte
ADD CONSTRAINT pop_status_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.popber
ADD CONSTRAINT popber_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.popmassnber
ADD CONSTRAINT popmassnber_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.projekt
ADD CONSTRAINT projekt_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpop_apberrelevant_werte
ADD CONSTRAINT tpop_apberrelevant_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.tpop_apberrelevant_werte
ADD CONSTRAINT tpop_apberrelevant_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpop_entwicklung_werte
ADD CONSTRAINT tpop_entwicklung_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.tpop_entwicklung_werte
ADD CONSTRAINT tpop_entwicklung_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpop
ADD CONSTRAINT tpop_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpopber
ADD CONSTRAINT tpopber_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpopkontr_idbiotuebereinst_werte
ADD CONSTRAINT tpopkontr_idbiotuebereinst_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.tpopkontr_idbiotuebereinst_werte
ADD CONSTRAINT tpopkontr_idbiotuebereinst_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpopkontr
ADD CONSTRAINT tpopkontr_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpopkontr_typ_werte
ADD CONSTRAINT tpopkontr_typ_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.tpopkontr_typ_werte
ADD CONSTRAINT tpopkontr_typ_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpopkontr_typ_werte
ADD CONSTRAINT tpopkontr_typ_werte_text_key UNIQUE (text);
ALTER TABLE ONLY apflora.tpopkontrzaehl_einheit_werte
ADD CONSTRAINT tpopkontrzaehl_einheit_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.tpopkontrzaehl_einheit_werte
ADD CONSTRAINT tpopkontrzaehl_einheit_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpopkontrzaehl_methode_werte
ADD CONSTRAINT tpopkontrzaehl_methode_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.tpopkontrzaehl_methode_werte
ADD CONSTRAINT tpopkontrzaehl_methode_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpopkontrzaehl
ADD CONSTRAINT tpopkontrzaehl_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpopmassn_erfbeurt_werte
ADD CONSTRAINT tpopmassn_erfbeurt_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.tpopmassn_erfbeurt_werte
ADD CONSTRAINT tpopmassn_erfbeurt_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpopmassn
ADD CONSTRAINT tpopmassn_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpopmassn_typ_werte
ADD CONSTRAINT tpopmassn_typ_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.tpopmassn_typ_werte
ADD CONSTRAINT tpopmassn_typ_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.tpopmassnber
ADD CONSTRAINT tpopmassnber_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora."user"
ADD CONSTRAINT user_email_key UNIQUE (email);
ALTER TABLE ONLY apflora."user"
ADD CONSTRAINT user_name_key UNIQUE (name);
ALTER TABLE ONLY apflora."user"
ADD CONSTRAINT user_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.usermessage
ADD CONSTRAINT usermessage_id_key UNIQUE (id);
ALTER TABLE ONLY apflora.usermessage
ADD CONSTRAINT usermessage_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.ziel
ADD CONSTRAINT ziel_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.ziel_typ_werte
ADD CONSTRAINT ziel_typ_werte_code_key UNIQUE (code);
ALTER TABLE ONLY apflora.ziel_typ_werte
ADD CONSTRAINT ziel_typ_werte_pkey PRIMARY KEY (id);
ALTER TABLE ONLY apflora.zielber
ADD CONSTRAINT zielber_pkey PRIMARY KEY (id);
ALTER TABLE ONLY public.migrations
ADD CONSTRAINT migrations_name_key UNIQUE (name);
ALTER TABLE ONLY public.migrations
ADD CONSTRAINT migrations_pkey PRIMARY KEY (id);
CREATE INDEX "_variable_ApArtId_idx" ON apflora._variable USING btree ("ApArtId");
CREATE INDEX "_variable_JBerJahr_idx" ON apflora._variable USING btree (apber_jahr);
CREATE INDEX "adb_eigenschaften_Artname_idx" ON apflora.ae_eigenschaften USING btree (artname);
CREATE INDEX "adb_eigenschaften_TaxonomieId_idx" ON apflora.ae_eigenschaften USING btree (taxid);
CREATE INDEX adb_eigenschaften_id_idx ON apflora.ae_eigenschaften USING btree (id);
CREATE INDEX "adb_lr_Id_idx" ON apflora.ae_lrdelarze USING btree (sort);
CREATE INDEX "adb_lr_Label_idx" ON apflora.ae_lrdelarze USING btree (label);
CREATE INDEX adb_lr_id_idx ON apflora.ae_lrdelarze USING btree (id);
CREATE INDEX adresse_freiw_erfko_idx ON apflora.adresse USING btree (freiw_erfko);
CREATE INDEX adresse_id_idx ON apflora.adresse USING btree (id);
CREATE INDEX adresse_name_idx ON apflora.adresse USING btree (name);
CREATE INDEX ap_art_id_idx ON apflora.ap USING btree (art_id);
CREATE INDEX ap_bearbeiter_idx ON apflora.ap USING btree (bearbeiter);
CREATE INDEX ap_bearbeitung_idx ON apflora.ap USING btree (bearbeitung);
CREATE INDEX "ap_bearbstand_werte_DomainCode_idx" ON apflora.ap_bearbstand_werte USING btree (code);
CREATE INDEX "ap_bearbstand_werte_DomainOrd_idx" ON apflora.ap_bearbstand_werte USING btree (sort);
CREATE INDEX ap_bearbstand_werte_id_idx ON apflora.ap_bearbstand_werte USING btree (id);
CREATE INDEX "ap_erfbeurtkrit_werte_DomainCode_idx" ON apflora.ap_erfbeurtkrit_werte USING btree (code);
CREATE INDEX "ap_erfbeurtkrit_werte_DomainOrd_idx" ON apflora.ap_erfbeurtkrit_werte USING btree (sort);
CREATE INDEX ap_erfbeurtkrit_werte_id_idx ON apflora.ap_erfbeurtkrit_werte USING btree (id);
CREATE INDEX "ap_erfkrit_werte_BeurteilId_idx" ON apflora.ap_erfkrit_werte USING btree (code);
CREATE INDEX "ap_erfkrit_werte_BeurteilOrd_idx" ON apflora.ap_erfkrit_werte USING btree (sort);
CREATE INDEX ap_erfkrit_werte_id_idx ON apflora.ap_erfkrit_werte USING btree (id);
CREATE INDEX ap_id_idx ON apflora.ap USING btree (id);
CREATE INDEX ap_proj_id_idx ON apflora.ap USING btree (proj_id);
CREATE INDEX ap_start_jahr_idx ON apflora.ap USING btree (start_jahr);
CREATE INDEX ap_umsetzung_idx ON apflora.ap USING btree (umsetzung);
CREATE INDEX "ap_umsetzung_werte_DomainCode_idx" ON apflora.ap_umsetzung_werte USING btree (code);
CREATE INDEX "ap_umsetzung_werte_DomainOrd_idx" ON apflora.ap_umsetzung_werte USING btree (sort);
CREATE INDEX ap_umsetzung_werte_id_idx ON apflora.ap_umsetzung_werte USING btree (id);
CREATE INDEX apart_ap_id_idx ON apflora.apart USING btree (ap_id);
CREATE INDEX apart_art_id_idx ON apflora.apart USING btree (art_id);
CREATE INDEX apber_ap_id_idx ON apflora.apber USING btree (ap_id);
CREATE INDEX apber_bearbeiter_idx ON apflora.apber USING btree (bearbeiter);
CREATE INDEX apber_beurteilung_idx ON apflora.apber USING btree (beurteilung);
CREATE INDEX apber_id_idx ON apflora.apber USING btree (id);
CREATE INDEX apber_jahr_idx ON apflora.apber USING btree (jahr);
CREATE INDEX apberuebersicht_id_idx ON apflora.apberuebersicht USING btree (id);
CREATE INDEX apberuebersicht_jahr_idx ON apflora.apberuebersicht USING btree (jahr);
CREATE INDEX apberuebersicht_proj_id_idx ON apflora.apberuebersicht USING btree (proj_id);
CREATE INDEX assozart_ae_id_idx ON apflora.assozart USING btree (ae_id);
CREATE INDEX assozart_ap_id_idx ON apflora.assozart USING btree (ap_id);
CREATE INDEX assozart_id_idx ON apflora.assozart USING btree (id);
CREATE INDEX beob_art_id_idx ON apflora.beob USING btree (art_id);
CREATE INDEX beob_id_idx ON apflora.beob USING btree (id);
CREATE INDEX beob_nicht_zuordnen_idx ON apflora.beob USING btree (nicht_zuordnen);
CREATE INDEX beob_quelle_id_idx ON apflora.beob USING btree (quelle_id);
CREATE INDEX beob_quelle_werte_id_idx ON apflora.beob_quelle_werte USING btree (id);
CREATE INDEX beob_tpop_id_idx ON apflora.beob USING btree (tpop_id);
CREATE INDEX beob_x_idx ON apflora.beob USING btree (x);
CREATE INDEX beob_y_idx ON apflora.beob USING btree (y);
CREATE INDEX beobart_id_idx ON apflora.apart USING btree (id);
CREATE INDEX ber_ap_id_idx ON apflora.ber USING btree (ap_id);
CREATE INDEX ber_id_idx ON apflora.ber USING btree (id);
CREATE INDEX ber_jahr_idx ON apflora.ber USING btree (jahr);
CREATE INDEX erfkrit_ap_id_idx ON apflora.erfkrit USING btree (ap_id);
CREATE INDEX erfkrit_erfolg_idx ON apflora.erfkrit USING btree (erfolg);
CREATE INDEX erfkrit_id_idx ON apflora.erfkrit USING btree (id);
CREATE INDEX idealbiotop_ap_id_idx ON apflora.idealbiotop USING btree (ap_id);
CREATE INDEX idealbiotop_id_idx ON apflora.idealbiotop USING btree (id);
CREATE INDEX message_id_idx ON apflora.message USING btree (id);
CREATE INDEX message_time_idx ON apflora.message USING btree ("time");
CREATE INDEX pop_ap_id_idx ON apflora.pop USING btree (ap_id);
CREATE INDEX pop_bekannt_seit_idx ON apflora.pop USING btree (bekannt_seit);
CREATE INDEX pop_id_idx ON apflora.pop USING btree (id);
CREATE INDEX pop_name_idx ON apflora.pop USING btree (name);
CREATE INDEX pop_nr_idx ON apflora.pop USING btree (nr);
CREATE INDEX pop_status_idx ON apflora.pop USING btree (status);
CREATE INDEX "pop_status_werte_HerkunftId_idx" ON apflora.pop_status_werte USING btree (code);
CREATE INDEX "pop_status_werte_HerkunftOrd_idx" ON apflora.pop_status_werte USING btree (sort);
CREATE INDEX "pop_status_werte_HerkunftTxt_idx" ON apflora.pop_status_werte USING btree (text);
CREATE INDEX pop_status_werte_id_idx ON apflora.pop_status_werte USING btree (id);
CREATE INDEX pop_x_idx ON apflora.pop USING btree (x);
CREATE INDEX pop_y_idx ON apflora.pop USING btree (y);
CREATE INDEX popber_entwicklung_idx ON apflora.popber USING btree (entwicklung);
CREATE INDEX popber_id_idx ON apflora.popber USING btree (id);
CREATE INDEX popber_jahr_idx ON apflora.popber USING btree (jahr);
CREATE INDEX popber_pop_id_idx ON apflora.popber USING btree (pop_id);
CREATE INDEX popmassnber_beurteilung_idx ON apflora.popmassnber USING btree (beurteilung);
CREATE INDEX popmassnber_id_idx ON apflora.popmassnber USING btree (id);
CREATE INDEX popmassnber_jahr_idx ON apflora.popmassnber USING btree (jahr);
CREATE INDEX popmassnber_pop_id_idx ON apflora.popmassnber USING btree (pop_id);
CREATE INDEX projekt_id_idx ON apflora.projekt USING btree (id);
CREATE INDEX projekt_name_idx ON apflora.projekt USING btree (name);
CREATE INDEX tpop_apber_relevant_idx ON apflora.tpop USING btree (apber_relevant);
CREATE INDEX "tpop_apberrelevant_werte_DomainCode_idx" ON apflora.tpop_apberrelevant_werte USING btree (code);
CREATE INDEX "tpop_apberrelevant_werte_DomainTxt_idx" ON apflora.tpop_apberrelevant_werte USING btree (text);
CREATE INDEX tpop_apberrelevant_werte_id_idx ON apflora.tpop_apberrelevant_werte USING btree (id);
CREATE INDEX "tpop_entwicklung_werte_EntwicklungCode_idx" ON apflora.tpop_entwicklung_werte USING btree (code);
CREATE INDEX "tpop_entwicklung_werte_EntwicklungOrd_idx" ON apflora.tpop_entwicklung_werte USING btree (sort);
CREATE INDEX tpop_entwicklung_werte_id_idx ON apflora.tpop_entwicklung_werte USING btree (id);
CREATE INDEX tpop_flurname_idx ON apflora.tpop USING btree (flurname);
CREATE INDEX tpop_id_idx ON apflora.tpop USING btree (id);
CREATE INDEX tpop_nr_idx ON apflora.tpop USING btree (nr);
CREATE INDEX tpop_pop_id_idx ON apflora.tpop USING btree (pop_id);
CREATE INDEX tpop_status_idx ON apflora.tpop USING btree (status);
CREATE INDEX tpop_x_idx ON apflora.tpop USING btree (x);
CREATE INDEX tpop_y_idx ON apflora.tpop USING btree (y);
CREATE INDEX tpopber_entwicklung_idx ON apflora.tpopber USING btree (entwicklung);
CREATE INDEX tpopber_id_idx ON apflora.tpopber USING btree (id);
CREATE INDEX tpopber_jahr_idx ON apflora.tpopber USING btree (jahr);
CREATE INDEX tpopber_tpop_id_idx ON apflora.tpopber USING btree (tpop_id);
CREATE INDEX tpopkontr_bearbeiter_idx ON apflora.tpopkontr USING btree (bearbeiter);
CREATE INDEX tpopkontr_datum_idx ON apflora.tpopkontr USING btree (datum);
CREATE INDEX tpopkontr_entwicklung_idx ON apflora.tpopkontr USING btree (entwicklung);
CREATE INDEX tpopkontr_id_idx ON apflora.tpopkontr USING btree (id);
CREATE INDEX tpopkontr_idbiotuebereinst_werte_code_idx ON apflora.tpopkontr_idbiotuebereinst_werte USING btree (code);
CREATE INDEX tpopkontr_idbiotuebereinst_werte_id_idx ON apflora.tpopkontr_idbiotuebereinst_werte USING btree (id);
CREATE INDEX tpopkontr_idbiotuebereinst_werte_sort_idx ON apflora.tpopkontr_idbiotuebereinst_werte USING btree (sort);
CREATE INDEX tpopkontr_idealbiotop_uebereinstimmung_idx ON apflora.tpopkontr USING btree (idealbiotop_uebereinstimmung);
CREATE INDEX tpopkontr_jahr_idx ON apflora.tpopkontr USING btree (jahr);
CREATE INDEX tpopkontr_tpop_id_idx ON apflora.tpopkontr USING btree (tpop_id);
CREATE INDEX tpopkontr_typ_idx ON apflora.tpopkontr USING btree (typ);
CREATE INDEX tpopkontr_typ_werte_id_idx ON apflora.tpopkontr_typ_werte USING btree (id);
CREATE UNIQUE INDEX tpopkontr_zeit_id_idx ON apflora.tpopkontr USING btree (zeit_id);
CREATE INDEX tpopkontrzaehl_anzahl_idx ON apflora.tpopkontrzaehl USING btree (anzahl);
CREATE INDEX tpopkontrzaehl_einheit_idx ON apflora.tpopkontrzaehl USING btree (einheit);
CREATE INDEX tpopkontrzaehl_einheit_werte_code_idx ON apflora.tpopkontrzaehl_einheit_werte USING btree (code);
CREATE INDEX tpopkontrzaehl_einheit_werte_id_idx ON apflora.tpopkontrzaehl_einheit_werte USING btree (id);
CREATE INDEX tpopkontrzaehl_einheit_werte_sort_idx ON apflora.tpopkontrzaehl_einheit_werte USING btree (sort);
CREATE INDEX tpopkontrzaehl_id_idx ON apflora.tpopkontrzaehl USING btree (id);
CREATE INDEX tpopkontrzaehl_methode_idx ON apflora.tpopkontrzaehl USING btree (methode);
CREATE INDEX tpopkontrzaehl_methode_werte_code_idx ON apflora.tpopkontrzaehl_methode_werte USING btree (code);
CREATE INDEX tpopkontrzaehl_methode_werte_id_idx ON apflora.tpopkontrzaehl_methode_werte USING btree (id);
CREATE INDEX tpopkontrzaehl_methode_werte_sort_idx ON apflora.tpopkontrzaehl_methode_werte USING btree (sort);
CREATE INDEX tpopkontrzaehl_tpopkontr_id_idx2 ON apflora.tpopkontrzaehl USING btree (tpopkontr_id);
CREATE INDEX tpopmassn_bearbeiter_idx ON apflora.tpopmassn USING btree (bearbeiter);
CREATE INDEX tpopmassn_erfbeurt_werte_code_idx ON apflora.tpopmassn_erfbeurt_werte USING btree (code);
CREATE INDEX tpopmassn_erfbeurt_werte_id_idx ON apflora.tpopmassn_erfbeurt_werte USING btree (id);
CREATE INDEX tpopmassn_erfbeurt_werte_sort_idx ON apflora.tpopmassn_erfbeurt_werte USING btree (sort);
CREATE UNIQUE INDEX tpopmassn_id_idx ON apflora.tpopmassn USING btree (id);
CREATE INDEX tpopmassn_jahr_idx ON apflora.tpopmassn USING btree (jahr);
CREATE INDEX tpopmassn_tpop_id_idx ON apflora.tpopmassn USING btree (tpop_id);
CREATE INDEX tpopmassn_typ_idx ON apflora.tpopmassn USING btree (typ);
CREATE INDEX tpopmassn_typ_werte_code_idx ON apflora.tpopmassn_typ_werte USING btree (code);
CREATE INDEX tpopmassn_typ_werte_id_idx ON apflora.tpopmassn_typ_werte USING btree (id);
CREATE INDEX tpopmassn_typ_werte_sort_idx ON apflora.tpopmassn_typ_werte USING btree (sort);
CREATE INDEX tpopmassnber_beurteilung_idx ON apflora.tpopmassnber USING btree (beurteilung);
CREATE INDEX tpopmassnber_id_idx ON apflora.tpopmassnber USING btree (id);
CREATE INDEX tpopmassnber_jahr_idx ON apflora.tpopmassnber USING btree (jahr);
CREATE INDEX tpopmassnber_tpop_id_idx ON apflora.tpopmassnber USING btree (tpop_id);
CREATE INDEX user_id_idx ON apflora."user" USING btree (id);
CREATE INDEX user_name_idx ON apflora."user" USING btree (name);
CREATE INDEX usermessage_id_idx ON apflora.usermessage USING btree (id);
CREATE INDEX usermessage_message_id_idx ON apflora.usermessage USING btree (message_id);
CREATE INDEX usermessage_user_name_idx ON apflora.usermessage USING btree (user_name);
CREATE INDEX ziel_ap_id_idx ON apflora.ziel USING btree (ap_id);
CREATE INDEX ziel_id_idx ON apflora.ziel USING btree (id);
CREATE INDEX ziel_jahr_idx ON apflora.ziel USING btree (jahr);
CREATE INDEX ziel_typ_idx ON apflora.ziel USING btree (typ);
CREATE INDEX ziel_typ_werte_code_idx ON apflora.ziel_typ_werte USING btree (code);
CREATE INDEX ziel_typ_werte_id_idx ON apflora.ziel_typ_werte USING btree (id);
CREATE INDEX ziel_typ_werte_sort_idx ON apflora.ziel_typ_werte USING btree (sort);
CREATE INDEX zielber_id_idx ON apflora.zielber USING btree (id);
CREATE INDEX zielber_jahr_idx ON apflora.zielber USING btree (jahr);
CREATE INDEX zielber_ziel_id_idx ON apflora.zielber USING btree (ziel_id);
CREATE OR REPLACE VIEW apflora.v_exportevab_beob AS
SELECT tpopkontr.zeit_id AS "fkZeitpunkt",
tpopkontr.id AS "idBeobachtung",
COALESCE(adresse.evab_id_person, 'a1146ae4-4e03-4032-8aa8-bc46ba02f468'::uuid) AS fkautor,
ap.art_id AS fkart,
18 AS fkartgruppe,
1 AS fkaa1,
CASE
WHEN (tpop.status < 200) THEN 4
WHEN (EXISTS ( SELECT tpopmassn.tpop_id
FROM apflora.tpopmassn
WHERE ((tpopmassn.tpop_id = tpopkontr.tpop_id) AND ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3)) AND (tpopmassn.jahr <= tpopkontr.jahr)))) THEN 6
WHEN (tpop.status_unklar = true) THEN 3
ELSE 5
END AS "fkAAINTRODUIT",
CASE
WHEN ((v_tpopkontr_maxanzahl.anzahl = 0) AND (EXISTS ( SELECT tpopber.tpop_id
FROM apflora.tpopber
WHERE ((tpopber.tpop_id = tpopkontr.tpop_id) AND (tpopber.entwicklung = 8) AND (tpopber.jahr = tpopkontr.jahr))))) THEN 2
WHEN (v_tpopkontr_maxanzahl.anzahl = 0) THEN 3
ELSE 1
END AS "fkAAPRESENCE",
"substring"(tpopkontr.gefaehrdung, 1, 244) AS "MENACES",
"substring"(tpopkontr.vitalitaet, 1, 200) AS "VITALITE_PLANTE",
"substring"(tpop.beschreibung, 1, 244) AS "STATION",
"substring"(concat('Anzahlen: ', array_to_string(array_agg(tpopkontrzaehl.anzahl), ', '::text), ', Zaehleinheiten: ', string_agg((tpopkontrzaehl_einheit_werte.text)::text, ', '::text), ', Methoden: ', string_agg((tpopkontrzaehl_methode_werte.text)::text, ', '::text)), 1, 244) AS "ABONDANCE",
'C'::text AS "EXPERTISE_INTRODUIT",
CASE
WHEN (apflora_adresse_2.evab_id_person IS NOT NULL) THEN "substring"(apflora_adresse_2.name, 1, 99)
ELSE 'topos Marti & Müller AG Zürich'::text
END AS "EXPERTISE_INTRODUITE_NOM"
FROM (((apflora.ap
LEFT JOIN apflora.adresse apflora_adresse_2 ON ((ap.bearbeiter = apflora_adresse_2.id)))
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (((apflora.tpopkontr
LEFT JOIN apflora.adresse ON ((tpopkontr.bearbeiter = adresse.id)))
JOIN apflora.v_tpopkontr_maxanzahl ON ((v_tpopkontr_maxanzahl.id = tpopkontr.id)))
LEFT JOIN ((apflora.tpopkontrzaehl
LEFT JOIN apflora.tpopkontrzaehl_einheit_werte ON ((tpopkontrzaehl.einheit = tpopkontrzaehl_einheit_werte.code)))
LEFT JOIN apflora.tpopkontrzaehl_methode_werte ON ((tpopkontrzaehl.methode = tpopkontrzaehl_methode_werte.code))) ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
JOIN apflora.ae_eigenschaften ON ((ae_eigenschaften.id = ap.art_id)))
WHERE ((ae_eigenschaften.taxid > 150) AND (ae_eigenschaften.taxid < 1000000) AND (tpop.x IS NOT NULL) AND (tpop.y IS NOT NULL) AND ((tpopkontr.typ)::text = ANY (ARRAY[('Ausgangszustand'::character varying)::text, ('Zwischenbeurteilung'::character varying)::text, ('Freiwilligen-Erfolgskontrolle'::character varying)::text])) AND (tpop.status <> 201) AND (tpopkontr.bearbeiter IS NOT NULL) AND (tpopkontr.bearbeiter <> 'a1146ae4-4e03-4032-8aa8-bc46ba02f468'::uuid) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.jahr)::double precision <> date_part('year'::text, ('now'::text)::date)) AND (tpop.bekannt_seit IS NOT NULL) AND ((tpop.status = ANY (ARRAY[100, 101])) OR ((tpopkontr.jahr - tpop.bekannt_seit) > 5)) AND (tpop.flurname IS NOT NULL) AND (ap.id IN ( SELECT v_exportevab_projekt."idProjekt"
FROM apflora.v_exportevab_projekt)) AND (pop.id IN ( SELECT v_exportevab_raum."idRaum"
FROM apflora.v_exportevab_raum)) AND (tpop.id IN ( SELECT v_exportevab_ort."idOrt"
FROM apflora.v_exportevab_ort)) AND (tpopkontr.zeit_id IN ( SELECT v_exportevab_zeit."idZeitpunkt"
FROM apflora.v_exportevab_zeit)))
GROUP BY tpopkontr.zeit_id, tpopkontr.tpop_id, tpopkontr.id, tpopkontr.jahr, adresse.evab_id_person, ap.id,
CASE
WHEN (tpop.status < 200) THEN 4
WHEN (EXISTS ( SELECT tpopmassn.tpop_id
FROM apflora.tpopmassn
WHERE ((tpopmassn.tpop_id = tpopkontr.tpop_id) AND ((tpopmassn.typ >= 1) AND (tpopmassn.typ <= 3)) AND (tpopmassn.jahr <= tpopkontr.jahr)))) THEN 6
WHEN (tpop.status_unklar = true) THEN 3
ELSE 5
END, v_tpopkontr_maxanzahl.anzahl, tpopkontr.gefaehrdung, tpopkontr.vitalitaet, tpop.beschreibung, apflora_adresse_2.evab_id_person, apflora_adresse_2.name;
CREATE OR REPLACE VIEW apflora.v_qk_apber_ohnejahr AS
SELECT ap.proj_id,
ap.id AS ap_id,
'AP-Bericht ohne Jahr:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'AP-Berichte'::text, (apber.id)::text] AS url,
ARRAY[concat('AP-Bericht (id): ', apber.id)] AS text
FROM (apflora.ap
JOIN apflora.apber ON ((ap.id = apber.ap_id)))
GROUP BY ap.id, apber.id
HAVING (apber.jahr IS NULL)
ORDER BY apber.id;
CREATE OR REPLACE VIEW apflora.v_qk_feldkontr_ohnezaehlung AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Feldkontrolle ohne Zaehlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Feld-Kontrollen'::text, (tpopkontr.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (Jahr): ', tpopkontr.jahr)] AS text,
tpopkontr.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopkontr
LEFT JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
GROUP BY ap.id, pop.id, tpop.id, tpop.nr, tpopkontr.id, tpopkontrzaehl.id
HAVING ((tpopkontrzaehl.id IS NULL) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.typ)::text <> 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY ap.id, pop.nr, tpop.nr, tpopkontr.jahr;
CREATE OR REPLACE VIEW apflora.v_qk_freiwkontr_ohnezaehlung AS
SELECT ap.proj_id,
ap.id AS ap_id,
'Freiwilligen-Kontrolle ohne Zaehlung:'::text AS hw,
ARRAY['Projekte'::text, '4635372c-431c-11e8-bb30-e77f6cdd35a6'::text, 'Aktionspläne'::text, (ap.id)::text, 'Populationen'::text, (pop.id)::text, 'Teil-Populationen'::text, (tpop.id)::text, 'Freiwilligen-Kontrollen'::text, (tpopkontr.id)::text] AS url,
ARRAY[concat('Population (Nr.): ', pop.nr), concat('Teil-Population (Nr.): ', tpop.nr), concat('Feld-Kontrolle (Jahr): ', tpopkontr.jahr)] AS text,
tpopkontr.jahr AS "Berichtjahr"
FROM (apflora.ap
JOIN (apflora.pop
JOIN (apflora.tpop
JOIN (apflora.tpopkontr
LEFT JOIN apflora.tpopkontrzaehl ON ((tpopkontr.id = tpopkontrzaehl.tpopkontr_id))) ON ((tpop.id = tpopkontr.tpop_id))) ON ((pop.id = tpop.pop_id))) ON ((ap.id = pop.ap_id)))
GROUP BY ap.id, pop.id, tpop.id, tpop.nr, tpopkontr.id, tpopkontrzaehl.id
HAVING ((tpopkontrzaehl.id IS NULL) AND (tpopkontr.jahr IS NOT NULL) AND ((tpopkontr.typ)::text = 'Freiwilligen-Erfolgskontrolle'::text))
ORDER BY ap.id, pop.nr, tpop.nr, tpopkontr.jahr;
CREATE TRIGGER adresse_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.adresse FOR EACH ROW EXECUTE PROCEDURE public.adresse_on_update_set_mut();
CREATE TRIGGER ap_bearbstand_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.ap_bearbstand_werte FOR EACH ROW EXECUTE PROCEDURE public.ap_bearbstand_werte_on_update_set_mut();
CREATE TRIGGER ap_erfbeurtkrit_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.ap_erfbeurtkrit_werte FOR EACH ROW EXECUTE PROCEDURE public.ap_erfbeurtkrit_werte_on_update_set_mut();
CREATE TRIGGER ap_erfkrit_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.ap_erfkrit_werte FOR EACH ROW EXECUTE PROCEDURE public.ap_erfkrit_werte_on_update_set_mut();
CREATE TRIGGER ap_insert_add_apart AFTER INSERT ON apflora.ap FOR EACH ROW EXECUTE PROCEDURE apflora.ap_insert_add_apart();
CREATE TRIGGER ap_insert_add_idealbiotop AFTER INSERT ON apflora.ap FOR EACH ROW EXECUTE PROCEDURE apflora.ap_insert_add_idealbiotop();
CREATE TRIGGER ap_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.ap FOR EACH ROW EXECUTE PROCEDURE public.ap_on_update_set_mut();
CREATE TRIGGER ap_umsetzung_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.ap_umsetzung_werte FOR EACH ROW EXECUTE PROCEDURE public.ap_umsetzung_werte_on_update_set_mut();
CREATE TRIGGER apber_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.apber FOR EACH ROW EXECUTE PROCEDURE public.apber_on_update_set_mut();
CREATE TRIGGER apberuebersicht_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.apberuebersicht FOR EACH ROW EXECUTE PROCEDURE public.apberuebersicht_on_update_set_mut();
CREATE TRIGGER assozart_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.assozart FOR EACH ROW EXECUTE PROCEDURE public.assozart_on_update_set_mut();
CREATE TRIGGER beob_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.beob FOR EACH ROW EXECUTE PROCEDURE public.beob_on_update_set_mut();
CREATE TRIGGER ber_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.ber FOR EACH ROW EXECUTE PROCEDURE public.ber_on_update_set_mut();
CREATE TRIGGER encrypt_pass BEFORE INSERT OR UPDATE ON apflora."user" FOR EACH ROW EXECUTE PROCEDURE auth.encrypt_pass();
CREATE CONSTRAINT TRIGGER ensure_user_role_exists AFTER INSERT OR UPDATE ON apflora."user" NOT DEFERRABLE INITIALLY IMMEDIATE FOR EACH ROW EXECUTE PROCEDURE auth.check_role_exists();
CREATE TRIGGER erfkrit_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.erfkrit FOR EACH ROW EXECUTE PROCEDURE public.erfkrit_on_update_set_mut();
CREATE TRIGGER idealbiotop_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.idealbiotop FOR EACH ROW EXECUTE PROCEDURE public.idealbiotop_on_update_set_mut();
CREATE TRIGGER pop_max_one_massnber_per_year BEFORE INSERT OR UPDATE ON apflora.popmassnber FOR EACH ROW EXECUTE PROCEDURE apflora.pop_max_one_massnber_per_year();
CREATE TRIGGER pop_max_one_popber_per_year BEFORE INSERT OR UPDATE ON apflora.popber FOR EACH ROW EXECUTE PROCEDURE apflora.pop_max_one_popber_per_year();
CREATE TRIGGER pop_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.pop FOR EACH ROW EXECUTE PROCEDURE public.pop_on_update_set_mut();
CREATE TRIGGER pop_status_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.pop_status_werte FOR EACH ROW EXECUTE PROCEDURE public.pop_status_werte_on_update_set_mut();
CREATE TRIGGER popber_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.popber FOR EACH ROW EXECUTE PROCEDURE public.popber_on_update_set_mut();
CREATE TRIGGER popmassnber_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.popmassnber FOR EACH ROW EXECUTE PROCEDURE public.popmassnber_on_update_set_mut();
CREATE TRIGGER projekt_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.projekt FOR EACH ROW EXECUTE PROCEDURE public.projekt_on_update_set_mut();
CREATE TRIGGER tpop_apberrelevant_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpop_apberrelevant_werte FOR EACH ROW EXECUTE PROCEDURE public.tpop_apberrelevant_werte_on_update_set_mut();
CREATE TRIGGER tpop_entwicklung_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpop_entwicklung_werte FOR EACH ROW EXECUTE PROCEDURE public.tpop_entwicklung_werte_on_update_set_mut();
CREATE TRIGGER tpop_max_one_massnber_per_year BEFORE INSERT OR UPDATE ON apflora.tpopmassnber FOR EACH ROW EXECUTE PROCEDURE apflora.tpop_max_one_massnber_per_year();
CREATE TRIGGER tpop_max_one_tpopber_per_year BEFORE INSERT OR UPDATE ON apflora.tpopber FOR EACH ROW EXECUTE PROCEDURE apflora.tpop_max_one_tpopber_per_year();
CREATE TRIGGER tpop_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpop FOR EACH ROW EXECUTE PROCEDURE public.tpop_on_update_set_mut();
CREATE TRIGGER tpopber_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpopber FOR EACH ROW EXECUTE PROCEDURE public.tpopber_on_update_set_mut();
CREATE TRIGGER tpopkontr_idbiotuebereinst_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpopkontr_idbiotuebereinst_werte FOR EACH ROW EXECUTE PROCEDURE public.tpopkontr_idbiotuebereinst_werte_on_update_set_mut();
CREATE TRIGGER tpopkontr_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpopkontr FOR EACH ROW EXECUTE PROCEDURE public.tpopkontr_on_update_set_mut();
CREATE TRIGGER tpopkontr_typ_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpopkontr_typ_werte FOR EACH ROW EXECUTE PROCEDURE public.tpopkontr_typ_werte_on_update_set_mut();
CREATE TRIGGER tpopkontrzaehl_einheit_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpopkontrzaehl_einheit_werte FOR EACH ROW EXECUTE PROCEDURE public.tpopkontrzaehl_einheit_werte_on_update_set_mut();
CREATE TRIGGER tpopkontrzaehl_methode_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpopkontrzaehl_methode_werte FOR EACH ROW EXECUTE PROCEDURE public.tpopkontrzaehl_methode_werte_on_update_set_mut();
CREATE TRIGGER tpopkontrzaehl_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpopkontrzaehl FOR EACH ROW EXECUTE PROCEDURE public.tpopkontrzaehl_on_update_set_mut();
CREATE TRIGGER tpopmassn_erfbeurt_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpopmassn_erfbeurt_werte FOR EACH ROW EXECUTE PROCEDURE public.tpopmassn_erfbeurt_werte_on_update_set_mut();
CREATE TRIGGER tpopmassn_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpopmassn FOR EACH ROW EXECUTE PROCEDURE public.tpopmassn_on_update_set_mut();
CREATE TRIGGER tpopmassn_typ_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpopmassn_typ_werte FOR EACH ROW EXECUTE PROCEDURE public.tpopmassn_typ_werte_on_update_set_mut();
CREATE TRIGGER tpopmassnber_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.tpopmassnber FOR EACH ROW EXECUTE PROCEDURE public.tpopmassnber_on_update_set_mut();
CREATE TRIGGER ziel_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.ziel FOR EACH ROW EXECUTE PROCEDURE public.ziel_on_update_set_mut();
CREATE TRIGGER ziel_typ_werte_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.ziel_typ_werte FOR EACH ROW EXECUTE PROCEDURE public.ziel_typ_werte_on_update_set_mut();
CREATE TRIGGER zielber_on_update_set_mut BEFORE INSERT OR UPDATE ON apflora.zielber FOR EACH ROW EXECUTE PROCEDURE public.zielber_on_update_set_mut();
ALTER TABLE ONLY apflora.ap
ADD CONSTRAINT ap_fk_adresse FOREIGN KEY (bearbeiter) REFERENCES apflora.adresse(id) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.ap
ADD CONSTRAINT ap_fk_ae_eigenschaften FOREIGN KEY (art_id) REFERENCES apflora.ae_eigenschaften(id) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.ap
ADD CONSTRAINT ap_fk_ap_bearbstand_werte FOREIGN KEY (bearbeitung) REFERENCES apflora.ap_bearbstand_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.ap
ADD CONSTRAINT ap_fk_ap_umsetzung_werte FOREIGN KEY (umsetzung) REFERENCES apflora.ap_umsetzung_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.ap
ADD CONSTRAINT ap_proj_id_fkey FOREIGN KEY (proj_id) REFERENCES apflora.projekt(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.apart
ADD CONSTRAINT apart_ap_id_fkey FOREIGN KEY (ap_id) REFERENCES apflora.ap(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.apart
ADD CONSTRAINT apart_fk_ae_eigenschaften FOREIGN KEY (art_id) REFERENCES apflora.ae_eigenschaften(id) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.apber
ADD CONSTRAINT apber_ap_id_fkey FOREIGN KEY (ap_id) REFERENCES apflora.ap(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.apber
ADD CONSTRAINT apber_fk_adresse FOREIGN KEY (bearbeiter) REFERENCES apflora.adresse(id) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.apber
ADD CONSTRAINT apber_fk_ap_erfkrit_werte FOREIGN KEY (beurteilung) REFERENCES apflora.ap_erfkrit_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.apberuebersicht
ADD CONSTRAINT apberuebersicht_proj_id_fkey FOREIGN KEY (proj_id) REFERENCES apflora.projekt(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.assozart
ADD CONSTRAINT assozart_ae_id_fkey FOREIGN KEY (ae_id) REFERENCES apflora.ae_eigenschaften(id) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.assozart
ADD CONSTRAINT assozart_ap_id_fkey FOREIGN KEY (ap_id) REFERENCES apflora.ap(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.assozart
ADD CONSTRAINT assozart_fk_ae_eigenschaften FOREIGN KEY (ae_id) REFERENCES apflora.ae_eigenschaften(id) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.beob
ADD CONSTRAINT beob_fk_ae_eigenschaften FOREIGN KEY (art_id) REFERENCES apflora.ae_eigenschaften(id) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.beob
ADD CONSTRAINT beob_fk_beob_quelle_werte FOREIGN KEY (quelle_id) REFERENCES apflora.beob_quelle_werte(id) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.beob
ADD CONSTRAINT beob_tpop_id_fkey FOREIGN KEY (tpop_id) REFERENCES apflora.tpop(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.ber
ADD CONSTRAINT ber_ap_id_fkey FOREIGN KEY (ap_id) REFERENCES apflora.ap(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.erfkrit
ADD CONSTRAINT erfkrit_ap_id_fkey FOREIGN KEY (ap_id) REFERENCES apflora.ap(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.erfkrit
ADD CONSTRAINT erfkrit_fk_ap_erfkrit_werte FOREIGN KEY (erfolg) REFERENCES apflora.ap_erfkrit_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.usermessage
ADD CONSTRAINT fk_user FOREIGN KEY (user_name) REFERENCES apflora."user"(name) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.idealbiotop
ADD CONSTRAINT idealbiotop_ap_id_fkey FOREIGN KEY (ap_id) REFERENCES apflora.ap(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.pop
ADD CONSTRAINT pop_ap_id_fkey FOREIGN KEY (ap_id) REFERENCES apflora.ap(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.pop
ADD CONSTRAINT pop_fk_pop_status_werte FOREIGN KEY (status) REFERENCES apflora.pop_status_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.popber
ADD CONSTRAINT popber_fk_tpop_entwicklung_werte FOREIGN KEY (entwicklung) REFERENCES apflora.tpop_entwicklung_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.popber
ADD CONSTRAINT popber_pop_id_fkey FOREIGN KEY (pop_id) REFERENCES apflora.pop(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.popmassnber
ADD CONSTRAINT popmassnber_fk_tpopmassn_erfbeurt_werte FOREIGN KEY (beurteilung) REFERENCES apflora.tpopmassn_erfbeurt_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.popmassnber
ADD CONSTRAINT popmassnber_pop_id_fkey FOREIGN KEY (pop_id) REFERENCES apflora.pop(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.tpop
ADD CONSTRAINT tpop_fk_tpop_apberrelevant_werte FOREIGN KEY (apber_relevant) REFERENCES apflora.tpop_apberrelevant_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpop
ADD CONSTRAINT tpop_fk_tpop_status_werte FOREIGN KEY (status) REFERENCES apflora.pop_status_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpop
ADD CONSTRAINT tpop_pop_id_fkey FOREIGN KEY (pop_id) REFERENCES apflora.pop(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.tpopber
ADD CONSTRAINT tpopber_fk_tpop_entwicklung_werte FOREIGN KEY (entwicklung) REFERENCES apflora.tpop_entwicklung_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpopber
ADD CONSTRAINT tpopber_tpop_id_fkey FOREIGN KEY (tpop_id) REFERENCES apflora.tpop(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.tpopkontr
ADD CONSTRAINT tpopkontr_fk_adresse FOREIGN KEY (bearbeiter) REFERENCES apflora.adresse(id) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpopkontr
ADD CONSTRAINT tpopkontr_fk_tpop_entwicklung_werte FOREIGN KEY (entwicklung) REFERENCES apflora.tpop_entwicklung_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpopkontr
ADD CONSTRAINT tpopkontr_fk_tpopkontr_idbiotuebereinst_werte FOREIGN KEY (idealbiotop_uebereinstimmung) REFERENCES apflora.tpopkontr_idbiotuebereinst_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpopkontr
ADD CONSTRAINT tpopkontr_fk_tpopkontr_typ_werte FOREIGN KEY (typ) REFERENCES apflora.tpopkontr_typ_werte(text) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpopkontr
ADD CONSTRAINT tpopkontr_tpop_id_fkey FOREIGN KEY (tpop_id) REFERENCES apflora.tpop(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.tpopkontrzaehl
ADD CONSTRAINT tpopkontrzaehl_fk_tpopkontrzaehl_einheit_werte FOREIGN KEY (einheit) REFERENCES apflora.tpopkontrzaehl_einheit_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpopkontrzaehl
ADD CONSTRAINT tpopkontrzaehl_fk_tpopkontrzaehl_methode_werte FOREIGN KEY (methode) REFERENCES apflora.tpopkontrzaehl_methode_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpopkontrzaehl
ADD CONSTRAINT tpopkontrzaehl_tpopkontr_id_fkey FOREIGN KEY (tpopkontr_id) REFERENCES apflora.tpopkontr(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.tpopmassn
ADD CONSTRAINT tpopmassn_fk_adresse FOREIGN KEY (bearbeiter) REFERENCES apflora.adresse(id) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpopmassn
ADD CONSTRAINT tpopmassn_fk_tpopmassn_typ_werte FOREIGN KEY (typ) REFERENCES apflora.tpopmassn_typ_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpopmassn
ADD CONSTRAINT tpopmassn_tpop_id_fkey FOREIGN KEY (tpop_id) REFERENCES apflora.tpop(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.tpopmassnber
ADD CONSTRAINT tpopmassnber_fk_tpopmassn_erfbeurt_werte FOREIGN KEY (beurteilung) REFERENCES apflora.tpopmassn_erfbeurt_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.tpopmassnber
ADD CONSTRAINT tpopmassnber_tpop_id_fkey FOREIGN KEY (tpop_id) REFERENCES apflora.tpop(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.usermessage
ADD CONSTRAINT usermessage_message_id_fkey FOREIGN KEY (message_id) REFERENCES apflora.message(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.ziel
ADD CONSTRAINT ziel_ap_id_fkey FOREIGN KEY (ap_id) REFERENCES apflora.ap(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE ONLY apflora.ziel
ADD CONSTRAINT ziel_fk_ziel_typ_werte FOREIGN KEY (typ) REFERENCES apflora.ziel_typ_werte(code) ON UPDATE CASCADE ON DELETE SET NULL;
ALTER TABLE ONLY apflora.zielber
ADD CONSTRAINT zielber_ziel_id_fkey FOREIGN KEY (ziel_id) REFERENCES apflora.ziel(id) ON UPDATE CASCADE ON DELETE CASCADE;
ALTER TABLE apflora."user" ENABLE ROW LEVEL SECURITY;
DROP ROLE IF EXISTS postgrest_test_anonymous;
CREATE ROLE postgrest_test_anonymous;
GRANT postgrest_test_anonymous TO :PGUSER;
GRANT USAGE ON SCHEMA apflora TO postgrest_test_anonymous;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA apflora
TO postgrest_test_anonymous;
create or replace function apflora.notify_pgrst() returns void as $$
notify pgrst;
$$ language sql;