From bd4a38786686876cb409db72e5ae4632ccbe5e8f Mon Sep 17 00:00:00 2001 From: Daniel Quathamer Date: Mon, 27 Sep 2021 08:51:33 +0200 Subject: [PATCH] Denormalize DP Nr., Subject Nr. #1 --- build.xml | 13 +- excludes.txt.sam | 6 - includes.txt.sam | 2 - rsync_to_h1.x | 21 -- .../module/costage/bin/SQL_ENV_costage.sam | 13 + src-modules/module/costage/conf/costage.xml | 113 +++++++-- ...rans_costage_st_studierendenstammdaten.sql | 51 ++++ .../costage_st_studien_aggr_fuellen.sql | 146 +++++++++++ .../costage/hilfstabellen/vacuum_pg.sql | 8 + .../costage/masken/43020_felderinfo.unl | 24 ++ .../costage/masken/43020_maske_system_bez.unl | 1 + .../masken/43020_masken_felder_bez.unl | 15 ++ .../costage/masken/43020_maskeninfo.unl | 233 ++++++++++++++++++ .../masken/43020_sachgeb_maske_bez.unl | 1 + .../semester_bereinigen.sql | 4 + .../trans_costage_st_semester.sql | 30 +++ .../trans_costage_st_studiengaenge.sql | 43 ++++ 17 files changed, 666 insertions(+), 58 deletions(-) delete mode 100644 excludes.txt.sam delete mode 100644 includes.txt.sam delete mode 100755 rsync_to_h1.x create mode 100644 src-modules/module/costage/bin/SQL_ENV_costage.sam create mode 100644 src-modules/module/costage/datentabellen/trans_costage_st_studierendenstammdaten.sql create mode 100644 src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql create mode 100644 src-modules/module/costage/hilfstabellen/vacuum_pg.sql create mode 100644 src-modules/module/costage/masken/43020_felderinfo.unl create mode 100644 src-modules/module/costage/masken/43020_maske_system_bez.unl create mode 100644 src-modules/module/costage/masken/43020_masken_felder_bez.unl create mode 100644 src-modules/module/costage/masken/43020_maskeninfo.unl create mode 100644 src-modules/module/costage/masken/43020_sachgeb_maske_bez.unl create mode 100644 src-modules/module/costage/schluesseltabellen/semester_bereinigen.sql create mode 100644 src-modules/module/costage/schluesseltabellen/trans_costage_st_semester.sql create mode 100644 src-modules/module/costage/schluesseltabellen/trans_costage_st_studiengaenge.sql diff --git a/build.xml b/build.xml index 95c84ea..bb8e9dd 100644 --- a/build.xml +++ b/build.xml @@ -1,7 +1,11 @@ - + @@ -20,7 +24,10 @@ ant -DMODULE_PATH=/home/superx/devel_module/referenz/db/module/costage -DBASE_D - + + + + diff --git a/excludes.txt.sam b/excludes.txt.sam deleted file mode 100644 index 2e5c915..0000000 --- a/excludes.txt.sam +++ /dev/null @@ -1,6 +0,0 @@ -#files or directories to be excluded: -.* -excludes* -includes* -rsync_to_h1.x - diff --git a/includes.txt.sam b/includes.txt.sam deleted file mode 100644 index 319abb4..0000000 --- a/includes.txt.sam +++ /dev/null @@ -1,2 +0,0 @@ -#Dateiliste -README.txt.sam diff --git a/rsync_to_h1.x b/rsync_to_h1.x deleted file mode 100755 index d626e99..0000000 --- a/rsync_to_h1.x +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -#Synchronisierung webapp zum Zielserver -#Benutzer Variablen: -#REMOTE_HOST ->Ziel-Hostname -#REMOTE_USER ->Ziel-Benutzerkennung -#REMOTE_DIR -> Zielpfad - -#TODO: in LOCAL_DIR gelöschte Dateien werden nicht im REMOTE_DIR gelöscht - -if [ "$LOCAL_DIR" = "" ] - then - LOCAL_DIR=`pwd` -fi - -if [ "$REMOTE_HOST" = "" ] - then - rsync -L -rauvz --delete --include="*/" --include-from=includes.txt.sam --exclude="*" $LOCAL_DIR/* $REMOTE_DIR - else - rsync -L -rauvz --delete --include="*/" --include-from=includes.txt.sam --exclude="*" -e ssh $LOCAL_DIR/* "$REMOTE_USER"@"$REMOTE_HOST":$REMOTE_DIR -fi - diff --git a/src-modules/module/costage/bin/SQL_ENV_costage.sam b/src-modules/module/costage/bin/SQL_ENV_costage.sam new file mode 100644 index 0000000..a0d5f1f --- /dev/null +++ b/src-modules/module/costage/bin/SQL_ENV_costage.sam @@ -0,0 +1,13 @@ +#Beispielumgebung für das COSTAGE-Modul: + +#SUPERX_MODULE=$SUPERX_DIR/db/module +#SUPERX_ROHDATEN=rohdaten + +COSTAGE_PFAD=$SUPERX_MODULE/costage; export COSTAGE_PFAD +COSTAGE_ERRORDAT=$COSTAGE_PFAD/costage_update.err; export COSTAGE_ERRORDAT +#Hier stehen die Rohdaten (im Unterverzeichnis unl) +COSTAGE_LOAD_PFAD=$COSTAGE_PFAD/$SUPERX_ROHDATEN; export COSTAGE_LOAD_PFAD +COSTAGE_ERRORMAIL=$ERRORMAIL; export COSTAGE_ERRORMAIL +COSTAGE_LOGMAIL=$LOGMAIL; export COSTAGE_LOGMAIL + + diff --git a/src-modules/module/costage/conf/costage.xml b/src-modules/module/costage/conf/costage.xml index 1ad3272..08c7291 100644 --- a/src-modules/module/costage/conf/costage.xml +++ b/src-modules/module/costage/conf/costage.xml @@ -1,6 +1,6 @@ - @@ -169,6 +169,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> +Semester nach SuperX-Nontation, d.h. JJJJ+1 (bei SoSe) oder 2 (bei Wise) @@ -177,7 +178,20 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" /> - + + + + + + + + + + + + + +
@@ -218,7 +232,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
- +
@@ -239,7 +253,31 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
+ + + + + + + + + + + + + + + + + + + + + + + +
@@ -307,7 +345,7 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
- +
@@ -329,28 +367,47 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + - - + + - - - - - - - - - - - - - - + + + + + + - - + + @@ -360,7 +417,6 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[CO]" />
- @@ -469,26 +525,31 @@ parent="CO Basisdaten">Abfragen zur Administration CO Basisdaten - + - + - + + + + + + diff --git a/src-modules/module/costage/datentabellen/trans_costage_st_studierendenstammdaten.sql b/src-modules/module/costage/datentabellen/trans_costage_st_studierendenstammdaten.sql new file mode 100644 index 0000000..c0fac0b --- /dev/null +++ b/src-modules/module/costage/datentabellen/trans_costage_st_studierendenstammdaten.sql @@ -0,0 +1,51 @@ + +delete from costage_st_studierendenstammdaten; + +insert into costage_st_studierendenstammdaten( + st_studstamm_nr, + matrikelnummer, + vorname, + familienname, + geburtsdatum, + st_land1_nr, + st_land2_nr, + geburt_st_land_nr, + personentyp_name, + personentyp_kb, + aufnahmedatum, + abmeldungsdatum, + geschlecht, + ca12_staat, + second_nationality, + d_geburt, + d_exmatr) +select +S.st_studstamm_nr, + val(S.matrikelnummer), + vorname, + familienname, + geburtsdatum, + st_land1_nr, + st_land2_nr, + geburt_st_land_nr, + personentyp_name, + personentyp_kb, + aufnahmedatum, + abmeldungsdatum, + (case when S.geschlecht='M' then 1 +when S.geschlecht='W' then 2 +when S.geschlecht='X' then 3 +else 4 end)::smallint as geschlecht, +val(L.statistik_code) as ca12_staat, +S.st_land2_nr, +date(S.geburtsdatum) as d_geburt, +date(S.abmeldungsdatum) as d_exmatr +FROM costage_st_studierendenstammdaten_neu S, costage_st_laender L +where L.st_land_nr=S.st_land1_nr +and S.matrikelnummer is not null + ; + +update costage_st_studierendenstammdaten set second_nationality=val(L.statistik_code) +from costage_st_laender L +where L.st_land_nr=costage_st_studierendenstammdaten.st_land2_nr; + diff --git a/src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql b/src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql new file mode 100644 index 0000000..b6c3689 --- /dev/null +++ b/src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql @@ -0,0 +1,146 @@ + + +--Abfrage Maske Studierende (Zeitreihe) CO Basisdaten (43000) durchführen 14:54:12 +--Abfrage + + + + + +SELECT +SM.semester_tid as semester, +SG.st_absz_nr, +SG.st_skz_nr, +SG.studiengangs_identifikator, +SG.studiengangs_bezeichnung, +SM.st_sem_nr, +ST.st_studium_nr, +S.st_studstamm_nr, +ST.st_studiengang_nr, +SG.studiengangs_typ_kb, +SA.studienstatustyp, +SA.st_studienstatus_nr, +SA.beginn_datum, +SA.gueltig_ab, +S.matrikelnummer, +S.geschlecht, +S.ca12_staat, +S.second_nationality, +SG.fachkennzeichen, +null::integer as st_studiengang_nr_msg, +null::integer as st_studiengang_nr_tsg, +null::integer as studienfach_sortierung, +null::char(10) as hrst, +null::integer as fachsemester, +null::integer as hssem, +null::integer as status, +0::smallint as primaerflag, +null::integer as studiengang_nr, +null::integer as fach_nr, +rank () over (partition by SM.st_sem_nr, S.st_studstamm_nr, SG.studiengangs_identifikator order by gueltig_ab desc) as status_historie +into temp tmp_studien +FROM costage_st_studierendenstammdaten S, + costage_st_studien ST, + costage_st_semester SM, + costage_st_studiengaenge SG , + costage_st_studienstatus SA + +where +S.st_studstamm_nr = ST.st_studstamm_nr +and ST.st_studiengang_nr=SG.st_studiengang_nr +and S.matrikelnummer is not null +--and SM.semester_tid >= 20171 +-- and SM.semester_tid <= 20171 + and S.matrikelnummer =7322871 +and SG.studiengangs_typ_kb in ('ESG','TSG') +and SA.st_studium_nr=ST.st_studium_nr +and SA.st_sem_nr=SM.st_sem_nr +and SA.studienstatustyp not in ('a','o') +--group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14 +; +-- select * from tmp_studien +-- update tmp_studien +-- set abschluss_str=A.name +-- from costage_st_abschlussziele_lokal A +-- where A.st_absz_nr=tmp_studien.abschluss +-- ; + +update tmp_studien +set hrst=H.hoererstatus_kb +from costage_st_hoererstatus H +where tmp_studien.st_studstamm_nr = H.st_studstamm_nr +and tmp_studien.st_sem_nr = H.st_sem_nr +; + +update tmp_studien +set hssem=F.fachsemester +from costage_st_fachsemester F +where F.st_studium_nr=tmp_studien.st_studium_nr +and F.st_sem_nr=tmp_studien.st_sem_nr +and F.fachsemestertyp='HS' +; + +update tmp_studien +set primaerflag=1 +where exists (select st_studstamm_nr +from costage_st_hauptstudien H +where H.st_studstamm_nr=tmp_studien.st_studstamm_nr +and H.st_studium_nr=tmp_studien.st_studium_nr +and H.st_sem_nr=tmp_studien.st_sem_nr); + + + +update tmp_studien set fach_nr=M.studienfach_sortierung +from costage_st_studiengaenge_mtsg M +where M.st_studiengang_nr_tsg=tmp_studien.st_studiengang_nr +; + +update tmp_studien set fach_nr=1 +where fach_nr is null; + +update tmp_studien +set status=1 +where studienstatustyp='I' --TODO: andere Ausprägungen gem. Doku +; + + + + +delete from costage_st_studien_aggr; +insert into costage_st_studien_aggr( +st_studium_nr, + st_studstamm_nr, + matrikelnummer, + st_studiengang_nr, + st_studienstatus_nr, + status, + hrst, + semester, + fachsemester, + hssem, + primaerflag, + studiengang_nr, + fach_nr + ) + +select st_studium_nr, + st_studstamm_nr, + matrikelnummer, + st_studiengang_nr, + st_studienstatus_nr, + status, + hrst, + semester, + fachsemester, + hssem, + primaerflag, + rank () over (partition by semester, st_studstamm_nr order by primaerflag desc,st_studium_nr asc) + as studiengang_nr, + fach_nr + from tmp_studien + where status_historie=1; + + + drop table tmp_studien; + + diff --git a/src-modules/module/costage/hilfstabellen/vacuum_pg.sql b/src-modules/module/costage/hilfstabellen/vacuum_pg.sql new file mode 100644 index 0000000..abea9cf --- /dev/null +++ b/src-modules/module/costage/hilfstabellen/vacuum_pg.sql @@ -0,0 +1,8 @@ +select * from xdummy; +--bei Postgres in HIS1 laufen alle Scripte in Transaktionen, daher muss man +--für vacuum erst committen +commit; +vacuum costage_st_semester; +vacuum costage_st_studierendenstammdaten; +vacuum costage_st_studiengaenge; +vacuum costage_st_studien_aggr; diff --git a/src-modules/module/costage/masken/43020_felderinfo.unl b/src-modules/module/costage/masken/43020_felderinfo.unl new file mode 100644 index 0000000..9377a2e --- /dev/null +++ b/src-modules/module/costage/masken/43020_felderinfo.unl @@ -0,0 +1,24 @@ +43020^Köpfe oder Fälle ?^-3^0^0^130^150^1^sql^30^1^1^<> select apnr, eintrag from koepfe_oder_faelle;^hidden^<> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Fälle';^ +43021^Seit Semester^1^0^0^130^80^1^integer^30^1^1^<> select val('20' || replace(replace(semester_id,'S','1'),'W','2')) as semester_tid,semester_bezeichnung FROM costage_st_semester\ + order by 1 DESC;^^<> select val('20' || replace(replace(semester_id,'S','1'),'W','2')) as semester_tid,semester_bezeichnung FROM costage_st_semester\ + where today()-(5*365) between semester_anfang and semester_ende;^ +43022^Fächer^3^0^0^130^200^6^char^30^0^12^<> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^hidden^^ +43023^bis Fachsemester^23^330^-1^130^100^1^integer^30^0^0^^hidden^^ +43024^Hörerstatus^18^0^0^130^150^1^sql^30^0^1^<> select apnr, eintrag from hoererstatus order by 2^hidden^<> select apnr, eintrag from hoererstatus where eintrag='alle';^ +43025^Matrikelnr.^100^330^-1^130^100^1^char^30^0^0^ ^ ^ ^ +43026^Status^19^330^-1^130^180^1^sql^30^0^1^<> select apnr,eintrag from sos_status order by 2^ ^<> select apnr,eintrag from sos_status where eintrag='Alle ohne Beurl.';^ +43027^Bis Semester^2^330^-1^130^100^1^integer^30^0^1^<> select val('20' || replace(replace(semester_id,'S','1'),'W','2')) as semester_tid,semester_bezeichnung FROM costage_st_semester\ + order by 1 DESC;^Eintrag^<> select val('20' || replace(replace(semester_id,'S','1'),'W','2')) as semester_tid,semester_bezeichnung FROM costage_st_semester\ + where today() between semester_anfang and semester_ende;^ +43028^Abschluss^8^0^0^130^150^5^char^30^0^1^<> select apnr, trim(druck) || ' (' || trim(apnr) || ')' from cifx where key = 35 order by 2;^hidden^^ +43029^Fachkennz.^9^330^-1^130^150^1^char^30^0^1^<> select apnr,druck from sos_k_kzfa order by 2^hidden^^ +43030^Vertiefung^4^330^-1^130^100^1^char^30^0^1^<> select apnr,druck from cifx where key=39 order by 2;^hidden^^ +43031^ab Fachsemester^22^0^0^130^100^1^integer^30^0^0^^hidden^^ +43032^Studiengangstyp^120^0^0^130^150^1^char^20^0^1^<> select 'ETSG','Einfach- und Teilstudiengänge' from xdummy\ +union select 'EMSG','Einfach- und Mehrfachstudiengänge' from xdummy\ + order by 2;^ ^<> select 'ETSG','Einfach- und Teilstudiengänge' from xdummy^ +43033^Trennen nach^121^330^-1^130^100^1^char^20^0^1^<> \ +select 'Fach' from xdummy \ +union \ +select 'Abschluss' from xdummy^hidden^^ +43034^Studiengang^6^0^0^130^150^50^char^30^0^12^<> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') order by 3,2;^hidden^^ diff --git a/src-modules/module/costage/masken/43020_maske_system_bez.unl b/src-modules/module/costage/masken/43020_maske_system_bez.unl new file mode 100644 index 0000000..b4e7665 --- /dev/null +++ b/src-modules/module/costage/masken/43020_maske_system_bez.unl @@ -0,0 +1 @@ +43020^310^ diff --git a/src-modules/module/costage/masken/43020_masken_felder_bez.unl b/src-modules/module/costage/masken/43020_masken_felder_bez.unl new file mode 100644 index 0000000..c52c301 --- /dev/null +++ b/src-modules/module/costage/masken/43020_masken_felder_bez.unl @@ -0,0 +1,15 @@ +43020^43020^ +43020^43021^ +43020^43022^ +43020^43023^ +43020^43024^ +43020^43025^ +43020^43026^ +43020^43027^ +43020^43028^ +43020^43029^ +43020^43030^ +43020^43031^ +43020^43032^ +43020^43033^ +43020^43034^ diff --git a/src-modules/module/costage/masken/43020_maskeninfo.unl b/src-modules/module/costage/masken/43020_maskeninfo.unl new file mode 100644 index 0000000..a9ea7e1 --- /dev/null +++ b/src-modules/module/costage/masken/43020_maskeninfo.unl @@ -0,0 +1,233 @@ +43020^Studierende Detailansicht CO Basisdaten^--Freemarker Template\ +<#include "SQL_lingua_franca"/>\ +<#include "SuperX_general"/>\ +\ +<#assign studiengangstyp="" />\ +/* <#assign studiengangstyp=<> /> */\ +<#assign studiengangstyp_filter="1=1" />\ +\ +<#if studiengangstyp=="ETSG">\ +<#assign studiengangstyp_filter="SG.studiengangs_typ_kb in ('ESG','TSG')" />\ +<#elseif studiengangstyp=="EMSG">\ +<#assign studiengangstyp_filter="SG.studiengangs_typ_kb in ('ESG','MSG')" />\ +\ +\ +\ +--'ETSG','Einfach- und Teilstudiengänge' \ +--zun. temp. Tabelle\ +\ +SELECT\ +val('20' || replace(replace(SM.semester_id,'S','1'),'W','2')) as semester,--H.st_sem_nr,\ +SM.semester_bezeichnung,\ +SG.st_absz_nr as abschluss,\ +SG.st_skz_nr as fach,\ +SG.studiengangs_identifikator,\ +SG.studiengangs_bezeichnung,\ +SM.st_sem_nr,\ +ST.st_studium_nr,\ +S.st_studstamm_nr,\ +ST.st_studiengang_nr,\ +SG.studiengangs_typ_kb,\ +null::varchar(255) as abschluss_str,\ +null::integer as st_studiengang_nr_msg,\ +null::integer as st_studiengang_nr_tsg,\ +null::integer as studienfach_sortierung,\ +''::varchar(255) as hoererstatus_name,\ +null::varchar(255) as studienstatustyp,\ +null::integer as fachsemester,\ +count(*) as summe\ +into temp tmp_studien\ +FROM costage_st_studierendenstammdaten S,\ + costage_st_studien ST,\ +-- costage_st_hoererstatus H,\ + costage_st_semester SM,\ + costage_st_studiengaenge SG \ + \ + \ + \ +where \ +S.st_studstamm_nr = ST.st_studstamm_nr\ +and ST.st_studiengang_nr=SG.st_studiengang_nr\ +--and ST.st_studium_nr=SA.st_studium_nr\ +--and SM.st_sem_nr=SA.st_sem_nr\ +--and F.st_studium_nr=SA.st_studium_nr\ +-- and F.st_studium_nr=ST.st_studium_nr\ +-- and F.st_sem_nr=SM.st_sem_nr\ +-- and F.fachsemestertyp='FS'\ +and S.matrikelnummer is not null\ +--and H.st_sem_nr = ST.\ +and val('20' || replace(replace(SM.semester_id,'S','1'),'W','2')) >= <>\ +/* and val('20' || replace(replace(SM.semester_id,'S','1'),'W','2')) <= <> */\ +/* and S.matrikelnummer =<> */\ +--and ${studiengangstyp_filter}\ +group by 1,2,3,4,5,6,7,8,9,10,11\ +--,SM.semester_bezeichnung\ +order by 1;\ +\ +update tmp_studien \ +set abschluss_str=A.name\ +from costage_st_abschlussziele_lokal A\ +where A.st_absz_nr=tmp_studien.abschluss\ +;\ +\ +update tmp_studien\ +set hoererstatus_name=H.hoererstatus_name\ +from costage_st_hoererstatus H\ +where tmp_studien.st_studstamm_nr = H.st_studstamm_nr\ +and tmp_studien.st_sem_nr = H.st_sem_nr\ +;\ +\ +update tmp_studien\ +set fachsemester=F.fachsemester\ +from costage_st_fachsemester F\ +where F.st_studium_nr=tmp_studien.st_studium_nr\ +and F.st_sem_nr=tmp_studien.st_sem_nr\ +and F.fachsemestertyp='FS'\ +;\ +\ +update tmp_studien\ +set studienstatustyp=SA.studienstatustyp\ +from costage_st_studienstatus SA\ +where SA.st_studium_nr=tmp_studien.st_studium_nr\ +and SA.st_sem_nr=tmp_studien.st_sem_nr\ +;\ +\ +/*\ +--ESG löschen wenn inaktiv:\ +delete from tmp_studien\ +where studiengangs_typ_kb ='ESG'\ +and studienstatustyp is null;\ +\ +--MSG inaktiv, dann MSG und TSG löschen: \ +\ +select T.st_sem_nr,\ +T.st_studium_nr,\ +T.st_studstamm_nr,\ +T.st_studiengang_nr,\ +T.studiengangs_typ_kb,\ +MTSG.st_studiengang_nr_tsg\ +\ +into temp tmp_studien_ungueltig\ +from tmp_studien T left outer join costage_st_studiengaenge_mtsg MTSG\ +on (MTSG.st_studiengang_nr_msg=T.st_studiengang_nr)\ +where T.studiengangs_typ_kb ='MSG'\ +and T.studienstatustyp is null\ +;\ +\ +select T.st_sem_nr,\ +T.st_studium_nr,\ +T.st_studstamm_nr,\ +T.st_studiengang_nr,\ +T.studiengangs_typ_kb,\ +MTSG.st_studiengang_nr_tsg\ +\ +into temp tmp_studien_gueltig\ +from tmp_studien T left outer join costage_st_studiengaenge_mtsg MTSG\ +on (MTSG.st_studiengang_nr_msg=T.st_studiengang_nr)\ +where T.studiengangs_typ_kb ='MSG'\ +and T.studienstatustyp is not null\ +;\ +\ +--MSG löschen\ +delete from tmp_studien\ +where studiengangs_typ_kb ='MSG'\ +and (st_sem_nr,\ +st_studium_nr,\ +st_studstamm_nr,\ +st_studiengang_nr) in \ +(select st_sem_nr,\ +st_studium_nr,\ +st_studstamm_nr,\ +st_studiengang_nr\ +from tmp_studien_ungueltig)\ +;\ +--TSG löschen:\ +\ +delete from tmp_studien\ +where studiengangs_typ_kb ='TSG'\ +and (st_sem_nr,\ +--st_studium_nr,\ +st_studstamm_nr,\ +st_studiengang_nr) in \ +(select st_sem_nr,\ +--st_studium_nr,\ +st_studstamm_nr,\ +st_studiengang_nr_tsg\ +from tmp_studien_ungueltig)\ +and (st_sem_nr,\ +st_studium_nr,\ +st_studstamm_nr,\ +st_studiengang_nr) not in \ +(select st_sem_nr,\ +st_studium_nr,\ +st_studstamm_nr,\ +st_studiengang_nr_tsg\ +from tmp_studien_gueltig)\ +;\ +drop table tmp_studien_ungueltig;\ +drop table tmp_studien_gueltig;\ +*/\ +--final selection:\ +select semester_bezeichnung,\ +--abschluss,\ +--fach,\ +studiengangs_identifikator,\ +studiengangs_bezeichnung,\ +abschluss_str,\ +hoererstatus_name,\ +studienstatustyp,\ +studiengangs_typ_kb,\ +st_studiengang_nr,\ +st_studiengang_nr_msg,\ +st_studiengang_nr_tsg,\ +studienfach_sortierung,\ +fachsemester,\ +sum(summe)::integer as summe\ +from tmp_studien\ +group by semester,1,2,3,4,5,6,7,8,9,10,11,12\ +order by semester,1,2,3,4,5,6,7,8,9,10,11,12;^XIL List\ + sizable_columns horizontal_scrolling\ + white_space_color=COLOR_WHITE fixed_columns=1\ + drop_and_delete movable_columns\ + min_heading_height=55\ +Column CID=0 heading_text="@@sos_semester@@" explanation="@@@sos_semester@@@" center_heading\ + row_selectable heading_platform readonly\ + width=10\ +Column CID=0 heading_text="Studiengang ID" explanation="" center_heading\ + row_selectable heading_platform readonly\ + width=30\ +Column CID=0 heading_text="Studiengang\\nName" explanation="Fach" center_heading\ + row_selectable heading_platform readonly\ + width=30\ +Column CID=0 heading_text="Abschluss" explanation="Abschluss" center_heading\ + row_selectable heading_platform readonly\ + width=30\ +Column CID=0 heading_text="Hörerstatus" explanation="" center_heading\ + row_selectable heading_platform readonly\ + width=30\ +Column CID=0 heading_text="Studienstatus" explanation="" center_heading\ + row_selectable heading_platform readonly\ + width=8\ +Column CID=0 heading_text="Studiengangtyp" explanation="" center_heading\ + row_selectable heading_platform readonly\ + width=8\ +Column CID=0 heading_text="Studiengang Nr." explanation="" center_heading\ + row_selectable heading_platform readonly\ + width=8\ +Column CID=0 heading_text="MSG Nr." explanation="" center_heading\ + row_selectable heading_platform readonly\ + width=8\ +Column CID=0 heading_text="TSG Nr." explanation="" center_heading\ + row_selectable heading_platform readonly\ + width=8\ +Column CID=0 heading_text="Fachnr." explanation="" center_heading\ + row_selectable heading_platform readonly\ + width=8\ +Column CID=0 heading_text="Fachsemester" explanation="" center_heading\ + row_selectable heading_platform readonly\ + width=8\ +Column CID=1 heading_text="Gesamtzahl" explanation="@@@sos_gesamtzahl@@@" center_heading\ + row_selectable col_selectable rightJust heading_platform\ + readonly\ + width=8\ +@@@^Semester^Anzahl^Zeitreihe zur Anzeige des Datenbestandes aus CO^drop table tmp_studien;^-leer-^2^700^360^0^1^ ^ diff --git a/src-modules/module/costage/masken/43020_sachgeb_maske_bez.unl b/src-modules/module/costage/masken/43020_sachgeb_maske_bez.unl new file mode 100644 index 0000000..378e4e6 --- /dev/null +++ b/src-modules/module/costage/masken/43020_sachgeb_maske_bez.unl @@ -0,0 +1 @@ +310^43020^ diff --git a/src-modules/module/costage/schluesseltabellen/semester_bereinigen.sql b/src-modules/module/costage/schluesseltabellen/semester_bereinigen.sql new file mode 100644 index 0000000..22c3962 --- /dev/null +++ b/src-modules/module/costage/schluesseltabellen/semester_bereinigen.sql @@ -0,0 +1,4 @@ +--unnötige Zeilen in Semestertabelle entfernen: +delete from costage_st_semester where semester_tid not in ( +select distinct semester from costage_st_studien_aggr); + diff --git a/src-modules/module/costage/schluesseltabellen/trans_costage_st_semester.sql b/src-modules/module/costage/schluesseltabellen/trans_costage_st_semester.sql new file mode 100644 index 0000000..206c886 --- /dev/null +++ b/src-modules/module/costage/schluesseltabellen/trans_costage_st_semester.sql @@ -0,0 +1,30 @@ + +delete from costage_st_semester; + +insert into costage_st_semester( + st_sem_nr, + semester_id, + semester_anfang, + semester_ende, + semester_bezeichnung, + studienjahr) + select +st_sem_nr, + semester_id, + semester_anfang, + semester_ende, + semester_bezeichnung, + studienjahr + from costage_st_semester_neu +; + +--transformiere Semestercode nach SuperX Notation, d.h. JJJJ+1 (bei SoSe) oder 2 (bei Wise) +update costage_st_semester set semester_tid=val('20' || replace(replace(semester_id,'S','1'),'W','2')) +where year(date(semester_anfang)) >=2000; + +; +update costage_st_semester set semester_tid=val('19' || replace(replace(semester_id,'S','1'),'W','2')) +where year(date(semester_anfang)) <2000; + +; + diff --git a/src-modules/module/costage/schluesseltabellen/trans_costage_st_studiengaenge.sql b/src-modules/module/costage/schluesseltabellen/trans_costage_st_studiengaenge.sql new file mode 100644 index 0000000..ea9379d --- /dev/null +++ b/src-modules/module/costage/schluesseltabellen/trans_costage_st_studiengaenge.sql @@ -0,0 +1,43 @@ + +delete from costage_st_studiengaenge; + +insert into costage_st_studiengaenge( + st_studiengang_nr, + studiengangs_identifikator, + studiengangs_bezeichnung, + st_absz_nr, + st_skz_nr, + fachkennzeichen, + st_std_art_nr, + studiengangs_typ_name, + studiengangs_typ_kb, + studientyp_name, + studientyp_kb, + stp_stp_nr) + select +st_studiengang_nr, + studiengangs_identifikator, + studiengangs_bezeichnung, + st_absz_nr, + st_skz_nr, + fachkennzeichen, + st_std_art_nr, + studiengangs_typ_name, + studiengangs_typ_kb, + studientyp_name, + studientyp_kb, + stp_stp_nr + from costage_st_studiengaenge_neu +; + +--transformiere Fach/Abschluss etc. nach SuperX Notation +--Fach: +update costage_st_studiengaenge set stg=SKZ.skz_key +from costage_st_studienkennzahlen SKZ +where SKZ.st_skz_nr=costage_st_studiengaenge.st_skz_nr; +--Abschluss: +update costage_st_studiengaenge set abschluss=A.code +from costage_st_abschlussziele_lokal A +where A.st_absz_nr=costage_st_studiengaenge.st_absz_nr; + +--