From 33b11dada8976361a497ce1ef846d05c6ee44ba6 Mon Sep 17 00:00:00 2001 From: Daniel Quathamer Date: Thu, 4 Jan 2024 14:07:20 +0100 Subject: [PATCH] =?UTF-8?q?Erste=20Maske=20Studierende=20nach=20Geschlecht?= =?UTF-8?q?=20und=20Nationalit=C3=A4t=20#1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hochschulinfo_fuellen.sql | 13 + .../import.kjb | 6 +- .../schluesseltabellen/trans_organigramm.sql | 235 ++++++++++++++++++ 3 files changed, 252 insertions(+), 2 deletions(-) create mode 100644 src-modules/module/sxc/etl/genesis/21311-0002_stud_sem_da_geschl_hs/hochschulinfo_fuellen.sql create mode 100644 src-modules/module/sxc/schluesseltabellen/trans_organigramm.sql diff --git a/src-modules/module/sxc/etl/genesis/21311-0002_stud_sem_da_geschl_hs/hochschulinfo_fuellen.sql b/src-modules/module/sxc/etl/genesis/21311-0002_stud_sem_da_geschl_hs/hochschulinfo_fuellen.sql new file mode 100644 index 0000000..7918497 --- /dev/null +++ b/src-modules/module/sxc/etl/genesis/21311-0002_stud_sem_da_geschl_hs/hochschulinfo_fuellen.sql @@ -0,0 +1,13 @@ +delete from hochschulinfo; +insert into hochschulinfo(name, + -- adresse, + hs_nr, + kapitel, + superx_server +-- kennung, +-- passwd +) +select min(auspraegung_label_4),hs_nr,'','' + from sxc_stud_sem_da_geschl_hs + group by 2; + diff --git a/src-modules/module/sxc/etl/genesis/21311-0002_stud_sem_da_geschl_hs/import.kjb b/src-modules/module/sxc/etl/genesis/21311-0002_stud_sem_da_geschl_hs/import.kjb index 869c056..f4f670c 100644 --- a/src-modules/module/sxc/etl/genesis/21311-0002_stud_sem_da_geschl_hs/import.kjb +++ b/src-modules/module/sxc/etl/genesis/21311-0002_stud_sem_da_geschl_hs/import.kjb @@ -384,6 +384,7 @@ statistik_code, merkmal_label_4, auspraegung_code_4, auspraegung_label_4, + hs_nr, bil002__studierende__anzahl, bil002__studierende__q) select statistik_code, @@ -406,9 +407,10 @@ statistik_code, auspraegung_label_3, merkmal_code_4, merkmal_label_4, - val(substring(auspraegung_code_4 from 3 for 4)) as hs_nr, + auspraegung_code_4, auspraegung_label_4, - bil002__studierende__anzahl, + val(substring(auspraegung_code_4 from 3 for 4)) as hs_nr, + bil002__studierende__anzahl, bil002__studierende__q FROM sxc_stud_sem_da_geschl_hs_neu ; diff --git a/src-modules/module/sxc/schluesseltabellen/trans_organigramm.sql b/src-modules/module/sxc/schluesseltabellen/trans_organigramm.sql new file mode 100644 index 0000000..6bb5960 --- /dev/null +++ b/src-modules/module/sxc/schluesseltabellen/trans_organigramm.sql @@ -0,0 +1,235 @@ +-- Hier werden die Daten aus kenn_hochschulen in die Tabelle organigramm geladen +-- nur für SuperX-Connect + +delete from organigramm; + + +create temp table tmp_organigramm ( +tid serial not null, +key_apnr CHAR(10) , +parent CHAR(10) , +drucktext CHAR(50) , +name NCHAR(150) , +ebene INTEGER , +lehre SMALLINT not null, +gueltig_seit DATE not null, +gueltig_bis DATE not null, +orgstruktur INTEGER +) +; +--root +insert into tmp_organigramm +(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT 'Hochschulen', + 'Hochschulen', --drucktext + '0',--key_apnr + null::char(10), --parent + 1, --ebene + 1, --lehre + date_val('01.01.1900'), + date_val('31.12.2999'), + 0 --orgstruktur +FROM xdummy; + + +-- UNI (parent=1) + +insert into tmp_organigramm +(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT 'Universitäten', + 'Universitäten', --drucktext + '1',--key_apnr + '0'::char(10), --parent + 2, --ebene + 1, --lehre + date_val('01.01.1900'), + date_val('31.12.2999'), + 0 --orgstruktur +FROM xdummy; + + +insert into tmp_organigramm +(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT substring(name from 1 for 150), + substring(name from 1 for 50), --drucktext + trim(hs_nr::char(10)),--key_apnr + '1'::char(10), --parent + 3, --ebene + 0, --lehre + date_val('01.01.1900'), + date_val('31.12.2999'), + 10 --orgstruktur +FROM kenn_hochschulen where art='U' +--nur Hochschulen, die auch als Org-Einheiten drin sind: +and hs_nr in (select H.hs_nr from hochschulinfo H); +; + +-- PH (parent=2) + +insert into tmp_organigramm +(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT 'Pädagogische Hochschulen', + 'Pädagogische Hochschulen', --drucktext + '2',--key_apnr + '0'::char(10), --parent + 2, --ebene + 1, --lehre + date_val('01.01.1900'), + date_val('31.12.2999'), + 0 --orgstruktur +FROM xdummy; + + +insert into tmp_organigramm +(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT substring(name from 1 for 150), + substring(name from 1 for 50), --drucktext + trim(hs_nr::char(10)),--key_apnr + '2'::char(10), --parent + 3, --ebene + 0, --lehre + date_val('01.01.1900'), + date_val('31.12.2999'), + 10 --orgstruktur +FROM kenn_hochschulen where art='PH' +--nur Hochschulen, die auch als Org-Einheiten drin sind: +and hs_nr in (select H.hs_nr from hochschulinfo H); +; + +-- FH (parent=3) +insert into tmp_organigramm +(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT 'Hochschulen für angewandte Wissenschaften', + 'Hochschulen für angewandte Wissenschaften', --drucktext + '3',--key_apnr + '0'::char(10), --parent + 2, --ebene + 1, --lehre + date_val('01.01.1900'), + date_val('31.12.2999'), + 0 --orgstruktur +FROM xdummy; + +insert into tmp_organigramm +(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT substring(name from 1 for 150), + substring(name from 1 for 50), --drucktext + trim(hs_nr::char(10)),--key_apnr + '3'::char(10), --parent + 3, --ebene + 0, --lehre + date_val('01.01.1900'), + date_val('31.12.2999'), + 10 --orgstruktur +FROM kenn_hochschulen where art='FH' + +--nur Hochschulen, die auch als Org-Einheiten drin sind: +and hs_nr in (select H.hs_nr from hochschulinfo H); +; + +-- Kunst Musik (parent=4) + +insert into tmp_organigramm +(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT 'Kunst- und Musikhochschulen', + 'Kunst- und Musikhochschulen', --drucktext + '4',--key_apnr + '0'::char(10), --parent + 2, --ebene + 1, --lehre + date_val('01.01.1900'), + date_val('31.12.2999'), + 0 --orgstruktur +FROM xdummy; + + +insert into tmp_organigramm +(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT substring(name from 1 for 150), + substring(name from 1 for 50), --drucktext + trim(hs_nr::char(10)),--key_apnr + '4'::char(10), --parent + 3, --ebene + 0, --lehre + date_val('01.01.1900'), + date_val('31.12.2999'), + 10 --orgstruktur +FROM kenn_hochschulen where art='KMW' + +--nur Hochschulen, die auch als Org-Einheiten drin sind: +and hs_nr in (select H.hs_nr from hochschulinfo H); +; + +-- DH (parent=5) + +insert into tmp_organigramm +(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT 'Duale Hochschulen', + 'Duale Hochschulen', --drucktext + '5',--key_apnr + '0'::char(10), --parent + 2, --ebene + 1, --lehre + date_val('01.01.1900'), + date_val('31.12.2999'), + 0 --orgstruktur +FROM xdummy; + + +insert into tmp_organigramm +(name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT substring(name from 1 for 150), + substring(name from 1 for 50), --drucktext + trim(hs_nr::char(10)),--key_apnr + '5'::char(10), --parent + 3, --ebene + 0, --lehre + date_val('01.01.1900'), + date_val('31.12.2999'), + 10 --orgstruktur +FROM kenn_hochschulen where art='DH' + +--nur Hochschulen, die auch als Org-Einheiten drin sind: +and hs_nr in (select H.hs_nr from hochschulinfo H); +; + +--BaWue-spez. Duplikate entfernen: + +delete from tmp_organigramm +where key_apnr in ('1240','1820','1270','1250','8171','8172','8173','8174','8175','8176','8177','8178','8179'); + + +--hochschulen bekommen orgstruktur 10, damit Sichten mit nodeattrib klappen: +update organigramm set orgstruktur=10 +where key_apnr in (select T.key_apnr +from tmp_organigramm T +where T.orgstruktur=10) +; + +delete from organigramm +where key_apnr in (select key_apnr from tmp_organigramm ) +and 0=(select count(*) from tmp_organigramm T +where organigramm.key_apnr || '_' || organigramm.name = T.key_apnr || '_' || T.name); + + + + +delete from tmp_organigramm +where key_apnr in (select key_apnr from organigramm); + +create temp table tmp_hilf (tid integer); +insert into tmp_hilf select max(tid) from organigramm; + +update tmp_hilf set tid=1 where tid is null; + + + +insert into organigramm +(tid,name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur) +SELECT O.tid+H.tid,name,drucktext,key_apnr,parent,ebene,lehre,gueltig_seit,gueltig_bis,orgstruktur +FROM tmp_organigramm O, tmp_hilf H; + + +drop table tmp_organigramm; +drop table tmp_hilf; +