Browse Source

Status und Primärflag TSG bei länger laufendem MSG anpassen #16

basisressourcen
Daniel Quathamer 7 months ago
parent
commit
5a2674331e
  1. 109
      src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql

109
src-modules/module/costage/hilfstabellen/costage_st_studien_aggr_fuellen.sql

@ -143,10 +143,7 @@ and A.bezug='S' @@ -143,10 +143,7 @@ and A.bezug='S'
select 20,timestamp_str(now()) from xdummy;
create index tmp_ix1 on tmp_studien(st_studiengang_nr);
create index tmp_ix2 on tmp_studien(st_studstamm_nr);
create index tmp_ix3 on tmp_studien(studiengangs_typ_kb);
create index tmp_ix4 on tmp_studien(st_sem_nr);
create index tmp_ix5 on tmp_studien(status_historie);
create index tmp_ix6 on tmp_studien(primaerflag_studien);
@ -194,6 +191,13 @@ select 30,timestamp_str(now()) from xdummy; @@ -194,6 +191,13 @@ select 30,timestamp_str(now()) from xdummy;
-- and H.st_studstamm_nr is null
-- ;
create index tmp_ix2_1 on tmp_studien2(st_studiengang_nr);
create index tmp_ix2_2 on tmp_studien2(st_studstamm_nr);
create index tmp_ix2_3 on tmp_studien2(studiengangs_typ_kb);
create index tmp_ix2_4 on tmp_studien2(st_sem_nr);
create index tmp_ix2_7 on tmp_studien2(st_absz_nr);
select 40,timestamp_str(now()) from xdummy;
--Ermittlung msg bei TSG:
@ -270,6 +274,11 @@ create index tmp_ix222 on tmp_tsg2msg(primaerflag_studien); @@ -270,6 +274,11 @@ create index tmp_ix222 on tmp_tsg2msg(primaerflag_studien);
-- and tmp_studien2.studiengangs_typ_kb ='TSG'
-- ;
--1.prio: primärflag=1
select 45,timestamp_str(now()) from xdummy;
update tmp_studien2 set st_studiengang_nr_msg=M.st_studiengang_nr_msg,
studienfach_sortierung=M.studienfach_sortierung,
studiengangs_identifikator_msg=S.studiengangs_identifikator
@ -284,6 +293,10 @@ studiengangs_identifikator_msg=S.studiengangs_identifikator @@ -284,6 +293,10 @@ studiengangs_identifikator_msg=S.studiengangs_identifikator
and T.st_studium_nr_msg=S.st_studium_nr
and tmp_studien2.studiengangs_typ_kb ='TSG'
and T.primaerflag_studien=1;
select 46,timestamp_str(now()) from xdummy;
--2. prio: ohne primärflag:
update tmp_studien2 set st_studiengang_nr_msg=M.st_studiengang_nr_msg,
studienfach_sortierung=M.studienfach_sortierung,
@ -337,11 +350,20 @@ and S.status_historie=1 @@ -337,11 +350,20 @@ and S.status_historie=1
select 70,timestamp_str(now()) from xdummy;
--TSG werden nicht mehr gebraucht in tmp_studien -> schneller
delete from tmp_studien where studiengangs_typ_kb !='MSG';
create index tmp_ix4 on tmp_studien(st_sem_nr);
create index tmp_ix1 on tmp_studien(st_studiengang_nr);
create index tmp_ix2 on tmp_studien(st_studstamm_nr);
create index tmp_ix7 on tmp_studien(studienstatustyp);
create index tmp_ix8 on tmp_studien(st_studiengang_nr_msg);
select 80,timestamp_str(now()) from xdummy;
<#if K_COSTAGE_TSG_GENERATE == 1>
--was ist das min/max. Semester eines TSG?
--was ist das min/max. Semester eines TSG TODO langsam?
select T.st_studiengang_nr as st_studiengang_nr_tsg,
T.st_studstamm_nr,
null::integer as st_studiengang_nr_msg_end,
@ -359,6 +381,9 @@ and ST.studienstatustyp in ('U','B','E','I','X','Z') --nur tatsächlich eingesch @@ -359,6 +381,9 @@ and ST.studienstatustyp in ('U','B','E','I','X','Z') --nur tatsächlich eingesch
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
;
select 90,timestamp_str(now()) from xdummy;
--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
@ -397,6 +422,8 @@ drop table if exists tmp_studien_msg_tsg_fehlend2; @@ -397,6 +422,8 @@ drop table if exists tmp_studien_msg_tsg_fehlend2;
--Studiengangsdaten des TSG nachladen:
--Ein Studi kann einen TSG mehrmals schließen (z.B. Beurlaubung)
--daher wird das max. Semester genommen, und der Status dann nachgeladen:
select F.semester,
F.semester_anfang,
F.semester_ende,
@ -418,19 +445,23 @@ T.st_studstamm_nr, @@ -418,19 +445,23 @@ T.st_studstamm_nr,
F.st_studiengang_nr_msg_end,
-- T.studiengangs_identifikator_msg,
T.st_studiengang_nr_tsg,
T.hrst,
T.hssem,
T.studienstatustyp,
T.statustyp_tsg,
null::char(10) as hrst,
null::integer as hssem,
null::char(10) as studienstatustyp,
null::char(10) as statustyp_tsg,
1::integer as tsg_generated,
T.primaerflag,
-- 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.hzb_land_nr,
null::char(10) as abm_art_s,
T.studienfach_sortierung,
null::timestamp as beginn_datum,
null::timestamp AS gueltig_ab,
null::integer as st_studienstatus_nr,
max(T.semester) as letztes_tsg_semester,
max(T.fachsemester) as fachsemester
into temp tmp_studien_msg_tsg_fehlend2
@ -438,9 +469,21 @@ from tmp_studien_msg_tsg_fehlend F, tmp_studien2 T @@ -438,9 +469,21 @@ 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
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
;
update tmp_studien_msg_tsg_fehlend2 set
hssem=S.hssem,
statustyp_tsg=S.statustyp_tsg,
abm_art_s=S.abm_art_s,
beginn_datum =S.beginn_datum,
gueltig_ab=S.gueltig_ab,
st_studienstatus_nr=S.st_studienstatus_nr
from tmp_studien2 S
where S.st_studiengang_nr_tsg=tmp_studien_msg_tsg_fehlend2.st_studiengang_nr_tsg
and S.st_studstamm_nr=tmp_studien_msg_tsg_fehlend2.st_studstamm_nr
and S.semester=tmp_studien_msg_tsg_fehlend2.letztes_tsg_semester
;
--fehlende Semester nachtragen:
insert into tmp_studien2(semester,
@ -456,9 +499,9 @@ st_studstamm_nr, @@ -456,9 +499,9 @@ st_studstamm_nr,
st_studiengang_nr,
studiengangs_typ_kb,
studienstatustyp,
--st_studienstatus_nr,
--beginn_datum,
--gueltig_ab,
st_studienstatus_nr,
beginn_datum,
gueltig_ab,
matrikelnummer,
geschlecht,
ca12_staat,
@ -478,10 +521,12 @@ hzb_land_sub_r_nr , @@ -478,10 +521,12 @@ hzb_land_sub_r_nr ,
hzb_jahr,
hzb_datum ,
hzb_note,
hzb_land_nr,
abm_art_s,
fachsemester,
studienfach_sortierung,
letztes_tsg_semester)
letztes_tsg_semester
)
select distinct semester,
semester_anfang,
semester_ende,
@ -495,9 +540,9 @@ st_studstamm_nr, @@ -495,9 +540,9 @@ st_studstamm_nr,
st_studiengang_nr_tsg,
F.studiengangs_typ_kb,
studienstatustyp,
--st_studienstatus_nr,
--beginn_datum,
--gueltig_ab,
st_studienstatus_nr,
beginn_datum,
gueltig_ab,
matrikelnummer,
geschlecht,
ca12_staat,
@ -517,6 +562,7 @@ hzb_land_sub_r_nr , @@ -517,6 +562,7 @@ hzb_land_sub_r_nr ,
hzb_jahr,
hzb_datum ,
hzb_note,
hzb_land_nr,
abm_art_s,
fachsemester,
studienfach_sortierung,
@ -526,20 +572,21 @@ where G.st_studiengang_nr=F.st_studiengang_nr_msg_end @@ -526,20 +572,21 @@ 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
-- ;
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;
@ -860,7 +907,7 @@ update costage_st_studien_aggr set abm_art_p=P.st_abm_art_kurzbezeichnung @@ -860,7 +907,7 @@ update costage_st_studien_aggr set abm_art_p=P.st_abm_art_kurzbezeichnung
from costage_st_personen_abmeldungen P, costage_st_semester S, costage_st_abmeldungsarten A
where S.st_sem_nr=P.st_sem_nr
and S.semester_tid=costage_st_studien_aggr.semester
and P.st_studium_nr=costage_st_studien_aggr.st_studium_nr
and P.st_studstamm_nr=costage_st_studien_aggr.st_studstamm_nr
and A.st_abm_art_kurzbezeichnung=P.st_abm_art_kurzbezeichnung
and A.bezug='P'
and costage_st_studien_aggr.semester >= ${beginn_semester}
@ -874,7 +921,7 @@ update costage_st_studien_aggr set urlaub_art=U.st_urlaub_typ_nr @@ -874,7 +921,7 @@ update costage_st_studien_aggr set urlaub_art=U.st_urlaub_typ_nr
from costage_st_urlaube U, costage_st_semester S
where S.st_sem_nr=U.st_sem_nr
and S.semester_tid=costage_st_studien_aggr.semester
and U.st_studium_nr=costage_st_studien_aggr.st_studium_nr
and U.st_studstamm_nr=costage_st_studien_aggr.st_studstamm_nr
and costage_st_studien_aggr.semester >= ${beginn_semester}
;

Loading…
Cancel
Save