diff --git a/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz.kjb b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz.kjb
index e594e16..f40d7f4 100644
--- a/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz.kjb
+++ b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz.kjb
@@ -13,7 +13,7 @@
PATH_TO_UPLOADFILE
- /home/superx/Downloads/stamm_all_ude.csv
+ /home/superx/Downloads/stamm_all_ude_fhdo.csv
@@ -361,7 +361,7 @@
create tmp_sxc_zahl_wert
SQL
- drop table if exists tmp_sxc_zahl_wert;
drop table if exists tmp_feld;
drop table if exists tmp_feld_all;
create table tmp_feld (Feld varchar(255));
create table tmp_feld_all (Feld varchar(255));
CREATE TABLE tmp_sxc_zahl_wert
(
tid serial,
hs_nr_str varchar(255),
hs_nr char(40),
kenn_zahl char(100) NOT NULL,
jahr smallint,
sem smallint,
ch110_institut char(10),
bland integer,
sxc_bestand_id integer,
wert_str varchar(255),
wert decimal(30,20),
generic_dim1 char(100),
generic_dim2 char(100)
);
+ drop table if exists tmp_sxc_zahl_wert;
drop table if exists tmp_feld;
drop table if exists tmp_feld_all;
create table tmp_feld (Feld varchar(255));
create table tmp_feld_all (Feld varchar(255));
CREATE TABLE tmp_sxc_zahl_wert
(
tid serial,
hs_nr_str varchar(255),
hs_nr char(40),
kenn_zahl char(100) NOT NULL,
jahr smallint,
sem smallint,
ch110_institut char(10),
bland integer,
sxc_bestand_id integer,
wert_str varchar(255),
wert decimal(30,20),
generic_dim1 char(100),
generic_dim2 char(100),
anz_hs_mit_aktivem_luf integer
);
F
F
diff --git a/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_template.ktr b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_template.ktr
index 80a1c2e..e18ccda 100644
--- a/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_template.ktr
+++ b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_template.ktr
@@ -11,7 +11,7 @@
PATH_TO_UPLOADFILE
- /home/superx/Downloads/stamm_all_ude.csv
+ /home/superx/Downloads/stamm_all_ude_fhdo.csv
diff --git a/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/insert_sxc_zahl_wert_nrw_schnitt.sql b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/insert_sxc_zahl_wert_nrw_schnitt.sql
index 8cf8d15..d0c6d58 100644
--- a/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/insert_sxc_zahl_wert_nrw_schnitt.sql
+++ b/src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/insert_sxc_zahl_wert_nrw_schnitt.sql
@@ -1,4 +1,6 @@
drop table if exists tmp_nrw_durchschnitt;
+drop table if exists tmp_luf_aktiv;
+drop table if exists tmp_luf_aktiv_sum;
CREATE TABLE tmp_nrw_durchschnitt
(
@@ -8,16 +10,21 @@ CREATE TABLE tmp_nrw_durchschnitt
nrw_durchschnitt numeric
);
-insert into tmp_nrw_durchschnitt
-select
- jahr,
- kenn_zahl,
- generic_dim1 as lfb,
- case when kenn_zahl like '%_proz%' then sum(wert)/12*100 else sum(wert)/12 end as nrw_durchschnitt
-from tmp_sxc_zahl_wert
-where hs_nr in ('1130','1480','1140','1080','1090','1100','1110','1120','0080','0121','0130','0140')
-group by jahr,kenn_zahl,lfb
-;
+create table tmp_luf_aktiv
+(
+ hs_nr char(10),
+ luf char(10),
+ jahr integer,
+ aktiv integer
+);
+
+create table tmp_luf_aktiv_sum
+(
+ luf char(10),
+ jahr integer,
+ aktiv_sum integer
+);
+
delete from sxc_zahl_wert
where
@@ -36,8 +43,7 @@ INSERT INTO sxc_zahl_wert
ch110_institut,
sxc_bestand_id,
wert,
- generic_dim1,
- generic_dim2
+ generic_dim1
)
select
W.hs_nr,
@@ -48,24 +54,105 @@ select
W.ch110_institut,
W.sxc_bestand_id,
W.wert,
- W.generic_dim1,
- D.nrw_durchschnitt
+ W.generic_dim1
from tmp_sxc_zahl_wert W
- left outer join tmp_nrw_durchschnitt D on (
- W.jahr=D.jahr
- and W.kenn_zahl=D.kenn_zahl
- and W.generic_dim1=D.lfb
- and W.sxc_bestand_id=1)
where
hs_nr is not null
order by
sxc_bestand_id,1,2,3,4
;
+-- Folgend wird der NRW-Durchschnitt berechnet. Dafür wird
+-- 1) tmp_sxc_zahl_wert geleert und aus sxc_zahl_wert neu befüllt, damit alle Daten in die Berechnung einfließen
+ -- tmp_sxc_zahl_wert wird für Hilfsspalte anz_hs_mit_aktivem_luf benötigt
+-- 2) Anzahl der HS mit aktivem LuF ermittelt für Nenner bei NRW-Durchschnitt
+ -- LuF ist aktiv wenn Studierende Köpfe > 0
+-- 3) NRW-Durchschnitt in tmp_sxc_zahl_wert berechnet
+-- 4) Update NRW-Durchschnitt auf sxc_zahl_wert
-drop table if exists tmp_sxc_zahl_wert;
-drop table if exists tmp_nrw_durchschnitt;
+
+-- 1) tmp_sxc_zahl_wert geleert und aus sxc_zahl_wert neu befüllt
+delete from tmp_sxc_zahl_wert;
+insert into tmp_sxc_zahl_wert(
+ tid,
+ hs_nr,
+ kenn_zahl,
+ jahr,
+ sem,
+ ch110_institut,
+ sxc_bestand_id,
+ wert,
+ generic_dim1,
+ generic_dim2,
+ bland)
+select
+ tid,
+ hs_nr,
+ kenn_zahl,
+ jahr,
+ sem,
+ ch110_institut,
+ sxc_bestand_id,
+ wert,
+ generic_dim1,
+ generic_dim2,
+ bland
+from sxc_zahl_wert
+;
+-- 2) Anzahl der HS mit aktivem LuF ermittelt
+insert into tmp_luf_aktiv
+select
+ hs_nr,
+ generic_dim1,
+ jahr,
+ 1
+from tmp_sxc_zahl_wert
+where
+ kenn_zahl='stud'
+ and wert > 0
+;
+
+insert into tmp_luf_aktiv_sum
+select
+ luf,
+ jahr,
+ sum(aktiv) as aktiv_sum
+from tmp_luf_aktiv
+where hs_nr in ('1130','1480','1140','1080','1090','1100','1110','1120','0080','0121','0130','0140')
+group by 1,2
+;
+
+update tmp_sxc_zahl_wert set anz_hs_mit_aktivem_luf=S.aktiv_sum
+from tmp_luf_aktiv_sum S
+where S.luf=tmp_sxc_zahl_wert.generic_dim1
+ and S.jahr=tmp_sxc_zahl_wert.jahr
+;
+
+-- 3) NRW-Durchschnitt in tmp_sxc_zahl_wert berechnet
+insert into tmp_nrw_durchschnitt
+select
+ jahr,
+ kenn_zahl,
+ generic_dim1 as lfb,
+ case when kenn_zahl like '%_proz%' then sum(wert)/anz_hs_mit_aktivem_luf*100 else sum(wert)/anz_hs_mit_aktivem_luf end as nrw_durchschnitt
+from tmp_sxc_zahl_wert
+where hs_nr in ('1130','1480','1140','1080','1090','1100','1110','1120','0080','0121','0130','0140')
+group by jahr,kenn_zahl,lfb,anz_hs_mit_aktivem_luf
+;
+
+-- 4) Update NRW-Durchschnitt auf sxc_zahl_wert
+update sxc_zahl_wert set generic_dim2=N.nrw_durchschnitt
+from tmp_nrw_durchschnitt N
+where sxc_zahl_wert.jahr=N.jahr
+ and sxc_zahl_wert.kenn_zahl=N.kenn_zahl
+ and sxc_zahl_wert.generic_dim1=N.lfb
+ and sxc_zahl_wert.sxc_bestand_id=1
+;
+
+drop table if exists tmp_sxc_zahl_wert;
+drop table if exists tmp_nrw_durchschnitt;
+--drop table if exists tmp_luf_aktiv;
+--drop table if exists tmp_luf_aktiv_sum;
-drop table if exists tmp_nrw_durchschnitt;
\ No newline at end of file