@ -23,6 +23,7 @@ null::integer as semester,
@@ -23,6 +23,7 @@ null::integer as semester,
E . semester_tid as semester_veranst ,
null : : integer as fachsemester ,
null : : integer as fachsemester_tsg ,
null : : integer as st_studium_nr_tsg ,
null : : varchar ( 255 ) as unikey ,
L . leistung_nr ,
L . leistungstyp_nr ,
@ -60,10 +61,16 @@ null::float as note_msg,
@@ -60,10 +61,16 @@ null::float as note_msg,
null : : integer as pnr ,
null : : integer as leistung_nr_msg ,
null : : integer as st_studiengang_nr_msg ,
null : : varchar as studienidentifikator_esg_msg ,
null : : date as leistungsdatum_msg ,
null : : integer as semester_msg ,
L . spov_abschluss as po_stp_stp_version_kb ,
null : : char ( 10 ) as studiengangs_typ_kb
L . spov_abschluss as po_stp_stp_version_kb_esg_tsg_msg ,
null : : varchar as po_stp_stp_version_kb ,
null : : varchar as po_stp_stp_version_kb_tsg ,
null : : char ( 10 ) as studiengangs_typ_kb ,
0 : : integer as abschlussarbeit ,
null : : CHAR ( 10 ) as skz_key_abschlussarbeit ,
null : : VARCHAR ( 255 ) as po_stp_stp_version_kb_abschlussarbeit
into temp tmp_pruef
FROM costage_st_semester E , costage_leistungen_typen T , costage_leistungen L , costage_st_studierendenstammdaten S
where E . semester_id = L . veranstaltung_semester
@ -100,6 +107,7 @@ E.semester_tid as semester,
@@ -100,6 +107,7 @@ E.semester_tid as semester,
null : : integer as semester_veranst ,
null : : integer as fachsemester ,
null : : integer AS fachsemester_tsg ,
null : : integer as st_studium_nr_tsg ,
null : : varchar ( 255 ) as unikey ,
L . leistung_nr ,
L . leistungstyp_nr ,
@ -137,10 +145,16 @@ null::float as note_msg,
@@ -137,10 +145,16 @@ null::float as note_msg,
null : : integer as pnr ,
null : : integer as leistung_nr_msg ,
null : : integer as st_studiengang_nr_msg ,
null : : varchar as studienidentifikator_esg_msg ,
null : : date as leistungsdatum_msg ,
null : : integer as semester_msg ,
L . spov_abschluss ,
null : : char ( 10 ) as studiengangs_typ_kb
L . spov_abschluss as po_stp_stp_version_kb_esg_tsg_msg ,
null : : Varchar as po_stp_stp_version_kb ,
null : : varchar as po_stp_stp_version_kb_tsg ,
null : : char ( 10 ) as studiengangs_typ_kb ,
0 : : integer as abschlussarbeit ,
null : : CHAR ( 10 ) as skz_key_abschlussarbeit ,
null : : VARCHAR ( 255 ) as po_stp_stp_version_kb_abschlussarbeit
FROM costage_st_semester E , costage_leistungen_typen T , costage_leistungen L , costage_st_studierendenstammdaten S
where L . leistungsdatum between E . semester_anfang and E . semester_ende
and L . veranstaltung_semester is null
@ -168,13 +182,32 @@ where S.st_studium_nr=tmp_pruef.st_studium_nr
@@ -168,13 +182,32 @@ where S.st_studium_nr=tmp_pruef.st_studium_nr
and S . st_studstamm_nr = tmp_pruef . st_studstamm_nr
and tmp_pruef . leistungsdetailtyp_kb ! = ' TSAB '
;
update tmp_pruef set st_studiengang_nr_tsg = S . st_studiengang_nr
update tmp_pruef set st_studiengang_nr_tsg = S . st_studiengang_nr ,
st_studium_nr_tsg = S . st_studium_nr
from costage_st_studien S
where S . st_studium_nr = tmp_pruef . st_studium_nr
and S . st_studstamm_nr = tmp_pruef . st_studstamm_nr
and tmp_pruef . leistungsdetailtyp_kb = ' TSAB '
;
- - studiengangs_typ_kb ermitteln :
update tmp_pruef set studiengangs_typ_kb = G . studiengangs_typ_kb
from costage_st_studiengaenge G
where G . st_studiengang_nr = tmp_pruef . st_studiengang_nr ;
update tmp_pruef set studiengangs_typ_kb = G . studiengangs_typ_kb
from costage_st_studiengaenge G
where G . st_studiengang_nr = tmp_pruef . st_studiengang_nr_tsg ;
- - bei TSG die Nr . des pers . Studiums zuweisen , in dem die Abschlussarbeit war :
update tmp_pruef set abschlussarbeit = 1
from costage_leistungen L
where L . leistungsdetailtyp_kb = ' BAKARBN '
and tmp_pruef . st_studium_nr_tsg = L . abs_fach_st_studium_nr
and tmp_pruef . studiengangs_typ_kb = ' TSG '
and tmp_pruef . leistungsdetailtyp_kb = ' TSAB '
;
- - Studiengangs - TID ermitteln :
update tmp_pruef set studiengang_tid = D . tid
from costage_dim_studiengang D
@ -204,6 +237,17 @@ and S.matrikelnummer=tmp_pruef.matrikelnummer
@@ -204,6 +237,17 @@ and S.matrikelnummer=tmp_pruef.matrikelnummer
and leistungsdetailtyp_kb = ' TSAB '
;
- - bei TSAB die Nr . des persönlichen Studiums aus dem Studienverlauf holen :
update tmp_pruef set st_studium_nr = S . st_studium_nr ,
st_studiengang_nr = S . st_studiengang_nr ,
studienidentifikator = S . studiengangs_identifikator
from costage_st_studien_aggr S
where S . semester = tmp_pruef . semester
and S . st_studiengang_nr_tsg = tmp_pruef . st_studiengang_nr_tsg
and S . matrikelnummer = tmp_pruef . matrikelnummer
and leistungsdetailtyp_kb = ' TSAB '
;
- - Prüfung kann nach letztem eingeschr . Semester sein , daher zuerst letztes Sem . ermitteln :
select S . st_studium_nr ,
S . matrikelnummer ,
@ -242,8 +286,8 @@ st_studienstatus_nr=S.st_studienstatus_nr,
@@ -242,8 +286,8 @@ st_studienstatus_nr=S.st_studienstatus_nr,
- - fachsemester = S . fachsemester , - - wird oben ermittelt , ab 0 . 6 nicht mehr aus letztem Studiums - Semester
studiengang_nr = S . studiengang_nr ,
st_studiengang_nr = S . st_studiengang_nr ,
fach_nr = S . fach_nr ,
unikey = S . unikey
fach_nr = S . fach_nr - - ,
- - unikey = S . unikey
from tmp_max_sem M , costage_st_studien_aggr S
where S . matrikelnummer = M . matrikelnummer
and S . st_studium_nr = M . st_studium_nr
@ -252,6 +296,7 @@ and S.st_studium_nr=tmp_pruef.st_studium_nr
@@ -252,6 +296,7 @@ and S.st_studium_nr=tmp_pruef.st_studium_nr
and S . matrikelnummer = tmp_pruef . matrikelnummer
and leistungsdetailtyp_kb ! = ' TSAB '
;
- - TODO : bei MSG leer , bei EST und TSG gefüllt
drop table tmp_max_sem ;
@ -267,7 +312,10 @@ update tmp_pruef set leistung_nr_msg=T.leistung_nr,
@@ -267,7 +312,10 @@ update tmp_pruef set leistung_nr_msg=T.leistung_nr,
leistungsdatum_msg = T . leistungsdatum ,
semester_msg = T . semester ,
leistungsstatus_map_kb_msg = T . leistungsstatus_map_kb ,
note_msg = ( case when T . pv_notenskala_typ_kb in ( ' DE1 ' , ' DE2 ' , ' DE3 ' , ' DE4 ' , ' DE5 ' , ' DE6 ' , ' DE7 ' ) or T . pv_notenskala_typ_kb is null then T . note_zahl else null : : float end )
note_msg = ( case when T . pv_notenskala_typ_kb in ( ' DE1 ' , ' DE2 ' , ' DE3 ' , ' DE4 ' , ' DE5 ' , ' DE6 ' , ' DE7 ' ) or T . pv_notenskala_typ_kb is null then T . note_zahl else null : : float end ) ,
studienidentifikator_esg_msg = T . studienidentifikator ,
st_studium_nr = T . st_studium_nr ,
po_stp_stp_version_kb = T . po_stp_stp_version_kb_esg_tsg_msg
from tmp_pruef2 T
where tmp_pruef . st_studiengang_nr = T . st_studiengang_nr
and tmp_pruef . leistungsdetailtyp_kb = ' TSAB '
@ -275,6 +323,24 @@ and T.matrikelnummer=tmp_pruef.matrikelnummer
@@ -275,6 +323,24 @@ and T.matrikelnummer=tmp_pruef.matrikelnummer
;
- - Fallback wenn der MSG bei TSG nicht gefunden wird , weil der MSG gewechselt hat oder der TSG im jew . Semester der Prüfung geschlossen wurde :
- - nach allen verfügbaren MSG gehen
update tmp_pruef set leistung_nr_msg = T . leistung_nr ,
leistungsdatum_msg = T . leistungsdatum ,
semester_msg = T . semester ,
leistungsstatus_map_kb_msg = T . leistungsstatus_map_kb ,
note_msg = ( case when T . pv_notenskala_typ_kb in ( ' DE1 ' , ' DE2 ' , ' DE3 ' , ' DE4 ' , ' DE5 ' , ' DE6 ' , ' DE7 ' ) or T . pv_notenskala_typ_kb is null then T . note_zahl else null : : float end ) ,
studienidentifikator_esg_msg = T . studienidentifikator ,
st_studium_nr = T . st_studium_nr ,
po_stp_stp_version_kb = T . po_stp_stp_version_kb_esg_tsg_msg
from tmp_pruef2 T , costage_st_studiengaenge_mtsg M
where tmp_pruef . st_studiengang_nr_tsg = M . st_studiengang_nr_tsg
and M . st_studiengang_nr_msg = T . st_studiengang_nr
and tmp_pruef . leistungsdetailtyp_kb = ' TSAB '
and tmp_pruef . leistung_nr_msg is null
and T . matrikelnummer = tmp_pruef . matrikelnummer
;
- - Leistungsdatum determiniert Semester auch bei MSG :
-- update tmp_pruef set semester=E.semester_tid
-- FROM costage_st_semester E
@ -285,7 +351,8 @@ and T.matrikelnummer=tmp_pruef.matrikelnummer
@@ -285,7 +351,8 @@ and T.matrikelnummer=tmp_pruef.matrikelnummer
update tmp_pruef set leistung_nr_msg = leistung_nr ,
leistungsdatum_msg = leistungsdatum ,
semester_msg = semester ,
leistungsstatus_map_kb_msg = leistungsstatus_map_kb
leistungsstatus_map_kb_msg = leistungsstatus_map_kb ,
studienidentifikator_esg_msg = studienidentifikator
where tmp_pruef . leistungsdetailtyp_kb ! = ' TSAB '
;
- - Fachsemester bei MSG gibt es in CO nicht . Daher die Regel :
@ -322,7 +389,44 @@ where G.st_studiengang_nr=tmp_pruef.st_studiengang_nr
@@ -322,7 +389,44 @@ where G.st_studiengang_nr=tmp_pruef.st_studiengang_nr
and K . st_skz_nr = G . st_skz_nr
and tmp_pruef . unikey is null
;
- - Nun bei TSG :
update tmp_pruef set unikey = K . unikey
from costage_st_studiengaenge G , costage_st_studienkennzahlen K
where G . st_studiengang_nr = tmp_pruef . st_studiengang_nr_tsg
and K . st_skz_nr = G . st_skz_nr
and tmp_pruef . unikey is null
;
- - MSG Prüfungen können keine Fachnr . haben , daher entfernen :
update tmp_pruef set fach_nr = null
where tmp_pruef . leistungsdetailtyp_kb ! = ' TSAB '
and exists ( select G . st_studiengang_nr
from costage_st_studiengaenge G
where G . st_studiengang_nr = tmp_pruef . st_studiengang_nr
and G . studiengangs_typ_kb = ' MSG ' )
;
- - bei MSG das Fach und SPO - Version der abschlussarbeit ermitteln :
- - zuerst Kopie nur mit TSG der Abschlussarbeit :
select * into temp tmp_pruef3
from tmp_pruef
where leistungsdetailtyp_kb = ' TSAB '
and abschlussarbeit = 1
;
create index tmp_ix_123 on tmp_pruef3 ( studiengang_tid ) ;
create index tmp_ix_1234 on tmp_pruef3 ( st_studium_nr ) ;
update tmp_pruef set skz_key_abschlussarbeit = G . skz_key ,
po_stp_stp_version_kb_abschlussarbeit = T . po_stp_stp_version_kb
from tmp_pruef3 T , costage_dim_studiengang G
where G . tid = T . studiengang_tid
and T . st_studium_nr = tmp_pruef . st_studium_nr
and tmp_pruef . studiengangs_typ_kb = ' MSG '
;
delete from costage_st_pruef_aggr
@ -330,6 +434,7 @@ where semester >= ${beginn_semester}
@@ -330,6 +434,7 @@ where semester >= ${beginn_semester}
or semester_tsg > = $ { beginn_semester } ;
insert into costage_st_pruef_aggr ( st_studium_nr ,
st_studium_nr_tsg ,
st_studstamm_nr ,
matrikelnummer ,
semester ,
@ -339,9 +444,11 @@ insert into costage_st_pruef_aggr(st_studium_nr,
@@ -339,9 +444,11 @@ insert into costage_st_pruef_aggr(st_studium_nr,
st_studiengang_nr ,
st_studiengang_nr_tsg ,
studiengang_nr ,
studiengangs_typ_kb ,
fach_nr ,
unikey ,
studienidentifikator ,
studienidentifikator_tsg ,
fachsemester ,
fachsemester_tsg ,
leistungstyp_nr ,
@ -350,6 +457,7 @@ insert into costage_st_pruef_aggr(st_studium_nr,
@@ -350,6 +457,7 @@ insert into costage_st_pruef_aggr(st_studium_nr,
abschnitt ,
stp_sp_nr ,
po_stp_stp_version_kb ,
po_stp_stp_version_kb_tsg ,
note ,
note_tsg ,
credits ,
@ -361,9 +469,12 @@ insert into costage_st_pruef_aggr(st_studium_nr,
@@ -361,9 +469,12 @@ insert into costage_st_pruef_aggr(st_studium_nr,
leistung_nr_tsg ,
leistungsdatum ,
leistungsdatum_tsg ,
skz_key_abschlussarbeit ,
po_stp_stp_version_kb_abschlussarbeit ,
summe )
select
st_studium_nr ,
st_studium_nr_tsg ,
st_studstamm_nr ,
matrikelnummer ,
( case when leistungsdetailtyp_kb = ' TSAB ' then semester_msg
@ -375,9 +486,12 @@ select
@@ -375,9 +486,12 @@ select
st_studiengang_nr ,
st_studiengang_nr_tsg ,
studiengang_nr ,
studiengangs_typ_kb ,
fach_nr ,
unikey ,
substring ( studienidentifikator from 1 for 255 ) ,
substring ( studienidentifikator_esg_msg from 1 for 255 ) as studienidentifikator ,
( case when leistungsdetailtyp_kb = ' TSAB ' then substring ( studienidentifikator from 1 for 255 )
else null : : varchar ( 255 ) end ) as studienidentifikator_tsg ,
fachsemester ,
fachsemester_tsg ,
leistungstyp_nr ,
@ -385,7 +499,9 @@ select
@@ -385,7 +499,9 @@ select
pnr ,
abschnitt ,
stp_sp_nr ,
po_stp_stp_version_kb ,
( case when leistungsdetailtyp_kb = ' TSAB ' then po_stp_stp_version_kb else po_stp_stp_version_kb_esg_tsg_msg end ) as po_stp_stp_version_kb ,
( case when leistungsdetailtyp_kb = ' TSAB ' then po_stp_stp_version_kb_esg_tsg_msg
else null : : varchar end ) as po_stp_stp_version_kb_tsg ,
( case when leistungsdetailtyp_kb = ' TSAB ' then note_msg
else (
case when pv_notenskala_typ_kb in ( ' DE1 ' , ' DE2 ' , ' DE3 ' , ' DE4 ' , ' DE5 ' , ' DE6 ' , ' DE7 ' )
@ -409,6 +525,8 @@ select
@@ -409,6 +525,8 @@ select
else leistungsdatum end ) as leistungsdatum ,
( case when leistungsdetailtyp_kb = ' TSAB ' then leistungsdatum
else null : : date end ) as leistungsdatum_tsg ,
skz_key_abschlussarbeit ,
po_stp_stp_version_kb_abschlussarbeit ,
1 as summe
from tmp_pruef
- - group by leistungsdatum , studiengangs_typ_kb , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30
@ -420,12 +538,12 @@ update costage_st_pruef_aggr set
@@ -420,12 +538,12 @@ update costage_st_pruef_aggr set
studiengang_nr = S . studiengang_nr ,
st_studiengang_nr = S . st_studiengang_nr ,
st_studiengang_nr_tsg = S . st_studiengang_nr_tsg ,
fach_nr = S . fach_nr ,
- - fach_nr = S . fach_nr ,
unikey = S . unikey ,
fachsemester_tsg = S . fachsemester
from costage_st_studien_aggr S
where 1 = 1
and S . st_studium_nr_tsg = costage_st_pruef_aggr . st_studium_nr
and S . st_studium_nr_tsg = costage_st_pruef_aggr . st_studium_nr_tsg
and S . matrikelnummer = costage_st_pruef_aggr . matrikelnummer
and costage_st_pruef_aggr . leistungsdetailtyp_kb = ' TSAB '
and costage_st_pruef_aggr . semester_tsg = S . semester
@ -433,6 +551,7 @@ and costage_st_pruef_aggr.semester_tsg=S.semester
@@ -433,6 +551,7 @@ and costage_st_pruef_aggr.semester_tsg=S.semester
drop table tmp_pruef ;
drop table tmp_pruef2 ;
drop table tmp_pruef3 ;