# HG changeset patch # User Michael Stanko # Date 1490021542 -3600 # Node ID 3ac30d816c9a29067bcdd47d3834a89d257407b2 # Parent 2c4a20e0bc92252285b39440de5647f3f157a702 prepare import of production data diff -r 2c4a20e0bc92 -r 3ac30d816c9a db_schema/stammdaten_data_ort_typ.sql --- a/db_schema/stammdaten_data_ort_typ.sql Mon Mar 20 15:17:20 2017 +0100 +++ b/db_schema/stammdaten_data_ort_typ.sql Mon Mar 20 15:52:22 2017 +0100 @@ -39,5 +39,9 @@ 11 Müllverbrennungsanlage MVA 12 Messstation MST 13 KTA KTA +14 Fanggebiet FG +15 Sonstiger Ortszusatz So \. - +-- +-- PostgreSQL database dump complete +-- diff -r 2c4a20e0bc92 -r 3ac30d816c9a db_schema/stammdaten_data_query.sql --- a/db_schema/stammdaten_data_query.sql Mon Mar 20 15:17:20 2017 +0100 +++ b/db_schema/stammdaten_data_query.sql Mon Mar 20 15:52:22 2017 +0100 @@ -30,7 +30,7 @@ 11 Probenehmer 4 Abfrage der Probenehmer 12 Datensatzerzeuger 5 Abfrage der Datensatzerzeuger 14 Messprogrammkategorie 6 Abfrage der Messprogrammkategorien -9 kein Filter 2 SELECT messprogramm.id, stammdaten.mess_stelle.netzbetreiber_id AS netzId, CASE WHEN messprogramm.mst_id = messprogramm.labor_mst_id THEN messprogramm.mst_id ELSE messprogramm.mst_id || '-' || messprogramm.labor_mst_id END AS mstLaborId, datenbasis.datenbasis AS dBasis, CASE WHEN messprogramm.ba_id = '1' THEN 'RB' ELSE 'IB' END AS messRegime, probenart.probenart AS pArt, messprogramm.umw_id AS umwId, messprogramm.media_desk AS deskriptoren, messprogramm.probenintervall AS intervall, ort.ort_id AS ortId, ort.gem_id AS eGemId, verwaltungseinheit.bezeichnung AS eGem FROM land.messprogramm LEFT JOIN stammdaten.mess_stelle ON (messprogramm.mst_id = stammdaten.mess_stelle.id) LEFT JOIN stammdaten.datenbasis ON (messprogramm.datenbasis_id = datenbasis.id) LEFT JOIN stammdaten.probenart ON (messprogramm.probenart_id = probenart.id) LEFT OUTER JOIN land.ortszuordnung_mp ON ( messprogramm.id = ortszuordnung_mp.messprogramm_id AND ortszuordnung_mp.ortszuordnung_typ = 'E' ) LEFT OUTER JOIN stammdaten.ort ON (ortszuordnung_mp.ort_id = ort.id) LEFT OUTER JOIN stammdaten.verwaltungseinheit ON (ort.gem_id = verwaltungseinheit.id) Abfrage der Messprogramme ohne Filter +9 Messprogramm pro Land 2 SELECT messprogramm.id, stammdaten.mess_stelle.netzbetreiber_id AS netzId, CASE WHEN messprogramm.mst_id = messprogramm.labor_mst_id THEN messprogramm.mst_id ELSE messprogramm.mst_id || '-' || messprogramm.labor_mst_id END AS mstLaborId, datenbasis.datenbasis AS dBasis, CASE WHEN messprogramm.ba_id = '1' THEN 'RB' ELSE 'IB' END AS messRegime, probenart.probenart AS pArt, messprogramm.umw_id AS umwId, messprogramm.media_desk AS deskriptoren, messprogramm.probenintervall AS intervall, ort.ort_id AS ortId, ort.gem_id AS eGemId, verwaltungseinheit.bezeichnung AS eGem FROM land.messprogramm LEFT JOIN stammdaten.mess_stelle ON (messprogramm.mst_id = stammdaten.mess_stelle.id) LEFT JOIN stammdaten.datenbasis ON (messprogramm.datenbasis_id = datenbasis.id) LEFT JOIN stammdaten.probenart ON (messprogramm.probenart_id = probenart.id) LEFT OUTER JOIN land.ortszuordnung_mp ON ( messprogramm.id = ortszuordnung_mp.messprogramm_id AND ortszuordnung_mp.ortszuordnung_typ = 'E' ) LEFT OUTER JOIN stammdaten.ort ON (ortszuordnung_mp.ort_id = ort.id) LEFT OUTER JOIN stammdaten.verwaltungseinheit ON (ort.gem_id = verwaltungseinheit.id) WHERE (stammdaten.mess_stelle.netzbetreiber_id = :netzIdFilter OR '' = :netzIdFilter) Abfrage der Messprogramme ohne Filter 1 kein Filter 0 SELECT probe.id AS id, probe.hauptproben_nr AS hpNr, datenbasis.datenbasis AS dBasis, stammdaten.mess_stelle.netzbetreiber_id AS netzId, probe.mst_id AS mstId, probe.umw_id AS umwId, probenart.probenart AS pArt, to_char(probe.probeentnahme_beginn, 'dd.mm.YYYY hh24:MI') AS peBegin, to_char(probe.probeentnahme_ende, 'dd.mm.YYYY hh24:MI') AS peEnd, ort.ort_id AS ortId, ort.gem_id AS eGemId, verwaltungseinheit.bezeichnung AS eGem, probe.id_alt AS probeId FROM land.probe LEFT JOIN stammdaten.mess_stelle ON (probe.mst_id = stammdaten.mess_stelle.id) LEFT JOIN stammdaten.datenbasis ON (probe.datenbasis_id = datenbasis.id) LEFT JOIN stammdaten.probenart ON (probe.probenart_id = probenart.id) LEFT OUTER JOIN land.ortszuordnung ON ( probe.id = ortszuordnung.probe_id AND ortszuordnung.ortszuordnung_typ = 'E' ) LEFT OUTER JOIN stammdaten.ort ON (ortszuordnung.ort_id = ort.id) LEFT OUTER JOIN stammdaten.verwaltungseinheit ON (ort.gem_id = verwaltungseinheit.id) Abfrage aller Proben ohne Filter 2 HP-Nr-Filter 0 SELECT probe.id AS id, probe.hauptproben_nr AS hpNr, datenbasis.datenbasis AS dBasis, stammdaten.mess_stelle.netzbetreiber_id AS netzId, probe.mst_id AS mstId, probe.umw_id AS umwId, probenart.probenart AS pArt, to_char(probe.probeentnahme_beginn, 'dd.mm.YYYY hh24:MI') AS peBegin, to_char(probe.probeentnahme_ende, 'dd.mm.YYYY hh24:MI') AS peEnd, ort.ort_id AS ortId, ort.gem_id AS eGemId, verwaltungseinheit.bezeichnung AS eGem, probe.id_alt AS probeId FROM land.probe LEFT JOIN stammdaten.mess_stelle ON (probe.mst_id = stammdaten.mess_stelle.id) LEFT JOIN stammdaten.datenbasis ON (probe.datenbasis_id = datenbasis.id) LEFT JOIN stammdaten.probenart ON (probe.probenart_id = probenart.id) LEFT OUTER JOIN land.ortszuordnung ON ( probe.id = ortszuordnung.probe_id AND ortszuordnung.ortszuordnung_typ = 'E' ) LEFT OUTER JOIN stammdaten.ort ON (ortszuordnung.ort_id = ort.id) LEFT OUTER JOIN stammdaten.verwaltungseinheit ON (ort.gem_id = verwaltungseinheit.id) WHERE (probe.hauptproben_nr LIKE CASE WHEN :hpNrFilter = '' THEN '%' ELSE :hpNrFilter END) Abfrage der Proben mit Wildcardfilter für die Hauptproben-Nr. 3 Probe-ID-Filter 0 SELECT probe.id AS id, probe.hauptproben_nr AS hpNr, datenbasis.datenbasis AS dBasis, stammdaten.mess_stelle.netzbetreiber_id AS netzId, probe.mst_id AS mstId, probe.umw_id AS umwId, probenart.probenart AS pArt, to_char(probe.probeentnahme_beginn, 'dd.mm.YYYY hh24:MI') AS peBegin, to_char(probe.probeentnahme_ende, 'dd.mm.YYYY hh24:MI') AS peEnd, ort.ort_id AS ortId, ort.gem_id AS eGemId, verwaltungseinheit.bezeichnung AS eGem, probe.id_alt AS probeId FROM land.probe LEFT JOIN stammdaten.datenbasis ON (probe.datenbasis_id = datenbasis.id) LEFT JOIN stammdaten.probenart ON (probe.probenart_id = probenart.id) LEFT JOIN stammdaten.mess_stelle ON (probe.mst_id = stammdaten.mess_stelle.id) LEFT OUTER JOIN land.ortszuordnung ON ( probe.id = ortszuordnung.probe_id AND ortszuordnung.ortszuordnung_typ = 'E' ) LEFT OUTER JOIN stammdaten.ort ON (ortszuordnung.ort_id = ort.id) LEFT OUTER JOIN stammdaten.verwaltungseinheit ON (ort.gem_id = verwaltungseinheit.id) WHERE (probe.id_alt LIKE CASE WHEN :probeIdFilter = '' THEN '%' ELSE :probeIdFilter END) Abfrage der Proben mit Wildcardfilter für die Probe_id @@ -54,8 +54,9 @@ 5 4 mstIdFilter 1 Messstelle f 6 4 umwIdFilter 3 Umweltbereich f 7 5 netzIdFilter 2 Land f -9 7 netzIdFilter 2 Land f -10 7 umwIdFilter 3 Umweltbereich t +8 7 netzIdFilter 2 Land f +9 7 umwIdFilter 3 Umweltbereich t +10 9 netzIdFilter 2 Land f 14 14 netzbetreiberId 2 Land t 15 13 statusFilter 4 Status t 16 10 netzbetreiberId 2 Land f diff -r 2c4a20e0bc92 -r 3ac30d816c9a db_schema/stammdaten_schema.sql --- a/db_schema/stammdaten_schema.sql Mon Mar 20 15:17:20 2017 +0100 +++ b/db_schema/stammdaten_schema.sql Mon Mar 20 15:52:22 2017 +0100 @@ -239,7 +239,8 @@ mst_id character varying(5) NOT NULL REFERENCES mess_stelle, bezeichnung character varying(120) NOT NULL, letzte_aenderung timestamp without time zone, - UNIQUE(datensatz_erzeuger_id, netzbetreiber_id) + UNIQUE(datensatz_erzeuger_id, netzbetreiber_id, mst_id) + ); CREATE TRIGGER letzte_aenderung_datensatz_erzeuger BEFORE UPDATE ON datensatz_erzeuger FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung();