|
|
|
@ -341,69 +341,107 @@ select 70,timestamp_str(now()) from xdummy;
@@ -341,69 +341,107 @@ select 70,timestamp_str(now()) from xdummy;
|
|
|
|
|
|
|
|
|
|
<#if K_COSTAGE_TSG_GENERATE == 1> |
|
|
|
|
|
|
|
|
|
select T.*,M.st_studiengang_nr_msg as st_studiengang_nr_msg_possible,ST.st_studium_nr as st_studium_nr_msg_possible |
|
|
|
|
into temp tmp_studien3 |
|
|
|
|
from tmp_studien2 T, costage_st_studiengaenge_mtsg M, costage_st_studien ST |
|
|
|
|
--was ist das min/max. Semester eines TSG? |
|
|
|
|
select T.st_studiengang_nr as st_studiengang_nr_tsg, |
|
|
|
|
T.st_studstamm_nr, |
|
|
|
|
null::integer as st_studiengang_nr_msg_end, |
|
|
|
|
--M.st_studiengang_nr_msg as st_studiengang_nr_msg_end, |
|
|
|
|
min(ST.semester) as startsemester,max(ST.semester) as endsemester |
|
|
|
|
into temp tmp_studien_msg_tsg |
|
|
|
|
from |
|
|
|
|
tmp_studien2 T, costage_st_studiengaenge_mtsg M, tmp_studien ST --costage_st_studien ST |
|
|
|
|
where ST.st_studiengang_nr=M.st_studiengang_nr_msg |
|
|
|
|
and ST.st_studstamm_nr=T.st_studstamm_nr |
|
|
|
|
and M.st_studiengang_nr_tsg=T.st_studiengang_nr |
|
|
|
|
and T.studiengangs_typ_kb ='TSG' |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--Start- und Endsemester aller MSG pro Student: |
|
|
|
|
drop table if exists tmp_studien_msg; |
|
|
|
|
select T.st_studiengang_nr as st_studiengang_nr_msg, |
|
|
|
|
T.st_studstamm_nr, |
|
|
|
|
min(T.semester) as startsemester, |
|
|
|
|
max(T.semester) as endsemester |
|
|
|
|
into temp tmp_studien_msg |
|
|
|
|
from tmp_studien T |
|
|
|
|
where T.studienstatustyp in ('U','B','E','I','X','Z') --nur tatsächlich eingeschrieben |
|
|
|
|
and T.studiengangs_typ_kb ='MSG'--enthält die MSG |
|
|
|
|
and T.status_historie=1 |
|
|
|
|
group by 1,2 |
|
|
|
|
; |
|
|
|
|
--Verknüpfung mit TSG über alle möglichen Semester: |
|
|
|
|
drop table if exists tmp_studien_msg_tsg; |
|
|
|
|
select distinct |
|
|
|
|
G.studiengangs_identifikator as studiengangs_identifikator_msg, |
|
|
|
|
M.st_studiengang_nr_msg, |
|
|
|
|
T.st_studiengang_nr as st_studiengang_nr_tsg, |
|
|
|
|
M.st_studstamm_nr, |
|
|
|
|
E.semester_tid as semester, |
|
|
|
|
E.semester_anfang, |
|
|
|
|
E.semester_ende, |
|
|
|
|
E.st_sem_nr, |
|
|
|
|
M.startsemester, |
|
|
|
|
M.endsemester |
|
|
|
|
into temp tmp_studien_msg_tsg |
|
|
|
|
from costage_st_studiengaenge G,tmp_studien_msg M, tmp_studien3 T,costage_st_semester E |
|
|
|
|
where G.st_studiengang_nr=M.st_studiengang_nr_msg |
|
|
|
|
and M.st_studiengang_nr_msg=T.st_studiengang_nr_msg_possible |
|
|
|
|
and M.st_studstamm_nr=T.st_studstamm_nr |
|
|
|
|
--and T.semester between M.startsemester and M.endsemester |
|
|
|
|
and E.semester_tid between M.startsemester and M.endsemester |
|
|
|
|
and T.studiengangs_typ_kb ='TSG' |
|
|
|
|
and ST.studiengangs_typ_kb ='MSG' |
|
|
|
|
and ST.studienstatustyp in ('U','B','E','I','X','Z') --nur tatsächlich eingeschrieben |
|
|
|
|
and ST.status_historie=1 |
|
|
|
|
group by 1,2,3 --,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51 |
|
|
|
|
; |
|
|
|
|
--letzten MSG zuweisen: |
|
|
|
|
update tmp_studien_msg_tsg set st_studiengang_nr_msg_end=ST.st_studiengang_nr |
|
|
|
|
from costage_st_studiengaenge_mtsg M, tmp_studien ST |
|
|
|
|
where ST.st_studiengang_nr=M.st_studiengang_nr_msg |
|
|
|
|
and M.st_studiengang_nr_tsg=tmp_studien_msg_tsg.st_studiengang_nr_tsg |
|
|
|
|
and ST.st_studstamm_nr=tmp_studien_msg_tsg.st_studstamm_nr |
|
|
|
|
and ST.semester = tmp_studien_msg_tsg.endsemester |
|
|
|
|
and ST.studiengangs_typ_kb ='MSG' |
|
|
|
|
and ST.studienstatustyp in ('U','B','E','I','X','Z') --nur tatsächlich eingeschrieben |
|
|
|
|
and ST.status_historie=1 |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
select 100,timestamp_str(now()) from xdummy; |
|
|
|
|
|
|
|
|
|
--nun fehlende Datensätze ermitteln: |
|
|
|
|
drop table if exists tmp_studien_msg_tsg_fehlend; |
|
|
|
|
select T.* |
|
|
|
|
select distinct S.semester_tid as semester, |
|
|
|
|
S.semester_anfang, |
|
|
|
|
S.semester_ende, |
|
|
|
|
S.st_sem_nr, |
|
|
|
|
T.st_studstamm_nr, |
|
|
|
|
T.st_studiengang_nr_tsg, |
|
|
|
|
T.st_studiengang_nr_msg_end |
|
|
|
|
into temp tmp_studien_msg_tsg_fehlend |
|
|
|
|
from tmp_studien_msg_tsg T --enthält alle möglichen TSG |
|
|
|
|
from costage_st_semester S inner join tmp_studien_msg_tsg T on (S.semester_tid between T.startsemester and T.endsemester) --enthält alle möglichen TSG |
|
|
|
|
left outer join tmp_studien2 T2 --enthält die tatsächlich vorhandenen TSG |
|
|
|
|
on (--T2.st_studiengang_nr_msg=T.st_studiengang_nr_msg |
|
|
|
|
--and |
|
|
|
|
T2.st_studiengang_nr=T.st_studiengang_nr_tsg |
|
|
|
|
on (T2.st_studiengang_nr=T.st_studiengang_nr_tsg |
|
|
|
|
and T2.st_studstamm_nr=T.st_studstamm_nr |
|
|
|
|
and T2.studiengangs_typ_kb ='TSG' |
|
|
|
|
and T.semester=T2.semester) |
|
|
|
|
where T2.st_studstamm_nr is null |
|
|
|
|
and S.semester_tid=T2.semester) |
|
|
|
|
where |
|
|
|
|
T2.st_studstamm_nr is null |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
drop table if exists tmp_studien_msg_tsg_fehlend2; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--Studiengangsdaten des TSG nachladen: |
|
|
|
|
select F.semester, |
|
|
|
|
F.semester_anfang, |
|
|
|
|
F.semester_ende, |
|
|
|
|
T.st_absz_nr, |
|
|
|
|
T.st_skz_nr, |
|
|
|
|
T.studiengangs_identifikator, |
|
|
|
|
T.studiengangs_bezeichnung, |
|
|
|
|
F.st_sem_nr, |
|
|
|
|
T.st_studium_nr, |
|
|
|
|
T.st_studstamm_nr, |
|
|
|
|
T.studiengangs_typ_kb, |
|
|
|
|
T.matrikelnummer, |
|
|
|
|
T.geschlecht, |
|
|
|
|
T.ca12_staat, |
|
|
|
|
T.second_nationality, |
|
|
|
|
T.fachkennzeichen, |
|
|
|
|
T.studienform_statistik_code, |
|
|
|
|
--T.st_studiengang_nr_msg, |
|
|
|
|
F.st_studiengang_nr_msg_end, |
|
|
|
|
-- T.studiengangs_identifikator_msg, |
|
|
|
|
T.st_studiengang_nr_tsg, |
|
|
|
|
T.hrst, |
|
|
|
|
T.hssem, |
|
|
|
|
T.studienstatustyp, |
|
|
|
|
T.statustyp_tsg, |
|
|
|
|
1::integer as tsg_generated, |
|
|
|
|
T.primaerflag, |
|
|
|
|
T.hzb_art_nr, |
|
|
|
|
T.hzb_land_sub_r_nr , |
|
|
|
|
T.hzb_jahr, |
|
|
|
|
T.hzb_datum , |
|
|
|
|
T.hzb_note, |
|
|
|
|
T.abm_art_s, |
|
|
|
|
T.studienfach_sortierung, |
|
|
|
|
max(T.semester) as letztes_tsg_semester, |
|
|
|
|
max(T.fachsemester) as fachsemester |
|
|
|
|
into temp tmp_studien_msg_tsg_fehlend2 |
|
|
|
|
from tmp_studien_msg_tsg_fehlend F, tmp_studien2 T |
|
|
|
|
where F.st_studstamm_nr=T.st_studstamm_nr |
|
|
|
|
and F.st_studiengang_nr_tsg=T.st_studiengang_nr_tsg |
|
|
|
|
and T.abm_art_s is not null |
|
|
|
|
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32 --,33 |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--fehlende Semester nachtragen: |
|
|
|
|
insert into tmp_studien2(semester, |
|
|
|
|
semester_anfang, |
|
|
|
@ -417,7 +455,7 @@ st_studium_nr,
@@ -417,7 +455,7 @@ st_studium_nr,
|
|
|
|
|
st_studstamm_nr, |
|
|
|
|
st_studiengang_nr, |
|
|
|
|
studiengangs_typ_kb, |
|
|
|
|
--studienstatustyp, |
|
|
|
|
studienstatustyp, |
|
|
|
|
--st_studienstatus_nr, |
|
|
|
|
--beginn_datum, |
|
|
|
|
--gueltig_ab, |
|
|
|
@ -442,108 +480,73 @@ hzb_datum ,
@@ -442,108 +480,73 @@ hzb_datum ,
|
|
|
|
|
hzb_note, |
|
|
|
|
abm_art_s, |
|
|
|
|
fachsemester, |
|
|
|
|
studienfach_sortierung, |
|
|
|
|
letztes_tsg_semester) |
|
|
|
|
select M.semester, |
|
|
|
|
M.semester_anfang, |
|
|
|
|
M.semester_ende, |
|
|
|
|
st_absz_nr, |
|
|
|
|
S.st_skz_nr, |
|
|
|
|
S.studiengangs_identifikator, |
|
|
|
|
S.studiengangs_bezeichnung, |
|
|
|
|
M.st_sem_nr, |
|
|
|
|
S.st_studium_nr, |
|
|
|
|
S.st_studstamm_nr, |
|
|
|
|
S.st_studiengang_nr, |
|
|
|
|
S.studiengangs_typ_kb, |
|
|
|
|
--M.studienstatustyp_msg, |
|
|
|
|
--M.st_studienstatus_nr_msg, |
|
|
|
|
--M.beginn_datum, |
|
|
|
|
--M.gueltig_ab, |
|
|
|
|
S.matrikelnummer, |
|
|
|
|
S.geschlecht, |
|
|
|
|
S.ca12_staat, |
|
|
|
|
S.second_nationality, |
|
|
|
|
S.fachkennzeichen, |
|
|
|
|
S.studienform_statistik_code, |
|
|
|
|
M.st_studiengang_nr_msg, |
|
|
|
|
M.studiengangs_identifikator_msg, |
|
|
|
|
S.st_studiengang_nr_tsg, |
|
|
|
|
null::char(10) as hrst,--hrst kann im Studienverlauf wechseln, daher nachher vom MSG nachladen |
|
|
|
|
S.hssem, |
|
|
|
|
null::char(10) as statustyp_tsg, |
|
|
|
|
1 as tsg_generated, |
|
|
|
|
select distinct semester, |
|
|
|
|
semester_anfang, |
|
|
|
|
semester_ende, |
|
|
|
|
F.st_absz_nr, |
|
|
|
|
F.st_skz_nr, |
|
|
|
|
F.studiengangs_identifikator, |
|
|
|
|
F.studiengangs_bezeichnung, |
|
|
|
|
st_sem_nr, |
|
|
|
|
st_studium_nr, |
|
|
|
|
st_studstamm_nr, |
|
|
|
|
st_studiengang_nr_tsg, |
|
|
|
|
F.studiengangs_typ_kb, |
|
|
|
|
studienstatustyp, |
|
|
|
|
--st_studienstatus_nr, |
|
|
|
|
--beginn_datum, |
|
|
|
|
--gueltig_ab, |
|
|
|
|
matrikelnummer, |
|
|
|
|
geschlecht, |
|
|
|
|
ca12_staat, |
|
|
|
|
second_nationality, |
|
|
|
|
F.fachkennzeichen, |
|
|
|
|
studienform_statistik_code, |
|
|
|
|
st_studiengang_nr_msg_end, |
|
|
|
|
G.studiengangs_identifikator as studiengangs_identifikator_msg, |
|
|
|
|
st_studiengang_nr_tsg, |
|
|
|
|
hrst, |
|
|
|
|
hssem, |
|
|
|
|
'X' as statustyp_tsg, -- generierte TSG sind immer geschlossen S.statustyp_tsg, |
|
|
|
|
1::integer as tsg_generated, |
|
|
|
|
0 as primaerflag, --geschlossene TSG können kein Primärflag haben |
|
|
|
|
S.hzb_art_nr, |
|
|
|
|
S.hzb_land_sub_r_nr , |
|
|
|
|
S.hzb_jahr, |
|
|
|
|
S.hzb_datum , |
|
|
|
|
S.hzb_note, |
|
|
|
|
null::char(10) as abm_art_s, |
|
|
|
|
null::integer as fachsemester, |
|
|
|
|
max(S.semester) |
|
|
|
|
from tmp_studien_msg_tsg_fehlend M, tmp_studien2 S, costage_st_studiengaenge_mtsg MT |
|
|
|
|
where M.st_studiengang_nr_msg=MT.st_studiengang_nr_msg |
|
|
|
|
and MT.st_studiengang_nr_tsg=M.st_studiengang_nr_tsg |
|
|
|
|
and MT.st_studiengang_nr_tsg=S.st_studiengang_nr |
|
|
|
|
and M.st_studstamm_nr=S.st_studstamm_nr |
|
|
|
|
and S.studiengangs_typ_kb ='TSG' |
|
|
|
|
and M.semester != S.semester |
|
|
|
|
--and E.st_sem_nr=M.st_sem_nr |
|
|
|
|
--and S.st_studiengang_nr_msg=34454 |
|
|
|
|
--and S.studiengangs_bezeichnung='Bildungswissenschaften' |
|
|
|
|
--and M.semester=20211 |
|
|
|
|
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,23,24,25,26,27,28,29,30,31,32,33 |
|
|
|
|
hzb_art_nr, |
|
|
|
|
hzb_land_sub_r_nr , |
|
|
|
|
hzb_jahr, |
|
|
|
|
hzb_datum , |
|
|
|
|
hzb_note, |
|
|
|
|
abm_art_s, |
|
|
|
|
fachsemester, |
|
|
|
|
studienfach_sortierung, |
|
|
|
|
letztes_tsg_semester |
|
|
|
|
from tmp_studien_msg_tsg_fehlend2 F, costage_st_studiengaenge G |
|
|
|
|
where G.st_studiengang_nr=F.st_studiengang_nr_msg_end |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
select 110,timestamp_str(now()) from xdummy; |
|
|
|
|
|
|
|
|
|
--statustyp und hrst nachladen: |
|
|
|
|
update tmp_studien2 set studienstatustyp=S.studienstatustyp, |
|
|
|
|
hrst=S.hrst |
|
|
|
|
from tmp_studien S |
|
|
|
|
where tmp_studien2.st_studiengang_nr_msg=S.st_studiengang_nr |
|
|
|
|
and tmp_studien2.st_studstamm_nr=S.st_studstamm_nr |
|
|
|
|
and S.studiengangs_typ_kb ='MSG' |
|
|
|
|
and tmp_studien2.tsg_generated=1 |
|
|
|
|
and tmp_studien2.st_sem_nr=S.st_sem_nr |
|
|
|
|
--Defaultmäßig den letzten Status im Semester nehmen (status_historie=1) |
|
|
|
|
and S.status_historie=1 |
|
|
|
|
--Ausnahme: wenn der MSG bis zum Semesterende läuft und Status X hat, |
|
|
|
|
--wird er auf den vorherigen Status gesetzt, weil der Studi |
|
|
|
|
--bis Semesterende studiert hat |
|
|
|
|
-- and ( |
|
|
|
|
-- (S.status_historie=1 and |
|
|
|
|
-- ( |
|
|
|
|
-- S.gueltig_ab < S.semester_ende or (S.gueltig_ab >= S.semester_ende and S.studienstatustyp !='X') |
|
|
|
|
-- ) |
|
|
|
|
-- ) |
|
|
|
|
-- or |
|
|
|
|
-- (S.status_historie=2 and S.gueltig_ab < S.semester_ende) |
|
|
|
|
-- ) |
|
|
|
|
|
|
|
|
|
; |
|
|
|
|
-- update tmp_studien2 set studienstatustyp=S.studienstatustyp, |
|
|
|
|
-- hrst=S.hrst |
|
|
|
|
-- from tmp_studien S |
|
|
|
|
-- where tmp_studien2.st_studiengang_nr_msg=S.st_studiengang_nr |
|
|
|
|
-- and tmp_studien2.st_studstamm_nr=S.st_studstamm_nr |
|
|
|
|
-- and S.studiengangs_typ_kb ='MSG' |
|
|
|
|
-- and tmp_studien2.tsg_generated=1 |
|
|
|
|
-- and tmp_studien2.st_sem_nr=S.st_sem_nr |
|
|
|
|
-- --Defaultmäßig den letzten Status im Semester nehmen (status_historie=1) |
|
|
|
|
-- and S.status_historie=1 |
|
|
|
|
-- ; |
|
|
|
|
|
|
|
|
|
select 120,timestamp_str(now()) from xdummy; |
|
|
|
|
|
|
|
|
|
--statustyp_tsg nachladen: |
|
|
|
|
update tmp_studien2 set statustyp_tsg='X' , -- generierte TSG sind immer geschlossen S.statustyp_tsg, |
|
|
|
|
fachsemester=S.fachsemester, |
|
|
|
|
abm_art_s=S.abm_art_s |
|
|
|
|
from tmp_studien S |
|
|
|
|
where tmp_studien2.st_studium_nr=S.st_studium_nr |
|
|
|
|
and tmp_studien2.st_studstamm_nr=S.st_studstamm_nr |
|
|
|
|
and S.studiengangs_typ_kb ='TSG' |
|
|
|
|
and tmp_studien2.tsg_generated=1 |
|
|
|
|
and tmp_studien2.letztes_tsg_semester=S.semester |
|
|
|
|
and S.status_historie=1 |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
select 130,timestamp_str(now()) from xdummy; |
|
|
|
|
|
|
|
|
|
drop table tmp_studien_msg_tsg_fehlend; |
|
|
|
|
drop table tmp_studien_msg_tsg_fehlend2; |
|
|
|
|
drop table tmp_studien_msg_tsg; |
|
|
|
|
drop table tmp_studien_msg; |
|
|
|
|
drop table tmp_studien3; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</#if> |
|
|
|
|