@ -14,12 +14,14 @@ L.st_studium_nr,
S . st_studstamm_nr ,
S . st_studstamm_nr ,
L . matrikelnummer : : integer as matrikelnummer ,
L . matrikelnummer : : integer as matrikelnummer ,
null : : integer as st_studiengang_nr ,
null : : integer as st_studiengang_nr ,
null : : integer as st_studiengang_nr_tsg ,
null : : integer as studiengang_nr ,
null : : integer as studiengang_nr ,
null : : integer as fach_nr ,
null : : integer as fach_nr ,
null : : integer as st_studienstatus_nr ,
null : : integer as st_studienstatus_nr ,
null : : integer as semester ,
null : : integer as semester ,
E . semester_tid as semester_veranst ,
E . semester_tid as semester_veranst ,
null : : integer as fachsemester ,
null : : integer as fachsemester ,
null : : integer as fachsemester_tsg ,
null : : varchar ( 255 ) as unikey ,
null : : varchar ( 255 ) as unikey ,
L . leistung_nr ,
L . leistung_nr ,
L . leistungstyp_nr ,
L . leistungstyp_nr ,
@ -59,12 +61,16 @@ null::integer as leistung_nr_msg,
null : : integer as st_studiengang_nr_msg ,
null : : integer as st_studiengang_nr_msg ,
null : : date as leistungsdatum_msg ,
null : : date as leistungsdatum_msg ,
null : : integer as semester_msg ,
null : : integer as semester_msg ,
L . spov_abschluss as po_stp_stp_version_kb
L . spov_abschluss as po_stp_stp_version_kb ,
null : : char ( 10 ) as studiengangs_typ_kb
into temp tmp_pruef
into temp tmp_pruef
FROM costage_st_semester E , costage_leistungen_typen T , costage_leistungen L , costage_st_studierendenstammdaten S
FROM costage_st_semester E , costage_leistungen_typen T , costage_leistungen L , costage_st_studierendenstammdaten S
where E . semester_id = L . veranstaltung_semester
where E . semester_id = L . veranstaltung_semester
and T . leistungstyp_nr = L . leistungstyp_nr
and T . leistungstyp_nr = L . leistungstyp_nr
and S . matrikelnummer = L . matrikelnummer
and S . matrikelnummer = L . matrikelnummer
and S . matrikelnummer in ( select ST . matrikelnummer
from costage_st_studierendenstammdaten ST
where $ { COSTAGE_STUDENT_FILTER } )
-- TSAB/AB:
-- TSAB/AB:
and T . kurzbezeichnung in ( ' AP ' , ' AAP ' ) - - Abschlussprüfung / Anerkannte Abschlussprüfung
and T . kurzbezeichnung in ( ' AP ' , ' AAP ' ) - - Abschlussprüfung / Anerkannte Abschlussprüfung
and L . leistungsstatus_nr in ( 4 , 2 ) - - Letztgültig / Final / gültige Leistung
and L . leistungsstatus_nr in ( 4 , 2 ) - - Letztgültig / Final / gültige Leistung
@ -84,12 +90,14 @@ L.st_studium_nr,
S . st_studstamm_nr ,
S . st_studstamm_nr ,
L . matrikelnummer : : integer as matrikelnummer ,
L . matrikelnummer : : integer as matrikelnummer ,
null : : integer as st_studiengang_nr ,
null : : integer as st_studiengang_nr ,
null : : integer as st_studiengang_nr_tsg ,
null : : integer as studiengang_nr ,
null : : integer as studiengang_nr ,
null : : integer as fach_nr ,
null : : integer as fach_nr ,
null : : integer as st_studienstatus_nr ,
null : : integer as st_studienstatus_nr ,
E . semester_tid as semester ,
E . semester_tid as semester ,
null : : integer as semester_veranst ,
null : : integer as semester_veranst ,
null : : integer as fachsemester ,
null : : integer as fachsemester ,
null : : integer AS fachsemester_tsg ,
null : : varchar ( 255 ) as unikey ,
null : : varchar ( 255 ) as unikey ,
L . leistung_nr ,
L . leistung_nr ,
L . leistungstyp_nr ,
L . leistungstyp_nr ,
@ -129,12 +137,16 @@ null::integer as leistung_nr_msg,
null : : integer as st_studiengang_nr_msg ,
null : : integer as st_studiengang_nr_msg ,
null : : date as leistungsdatum_msg ,
null : : date as leistungsdatum_msg ,
null : : integer as semester_msg ,
null : : integer as semester_msg ,
L . spov_abschluss
L . spov_abschluss ,
null : : char ( 10 ) as studiengangs_typ_kb
FROM costage_st_semester E , costage_leistungen_typen T , costage_leistungen L , costage_st_studierendenstammdaten S
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
where L . leistungsdatum between E . semester_anfang and E . semester_ende
and L . veranstaltung_semester is null
and L . veranstaltung_semester is null
and T . leistungstyp_nr = L . leistungstyp_nr
and T . leistungstyp_nr = L . leistungstyp_nr
and S . matrikelnummer = L . matrikelnummer
and S . matrikelnummer = L . matrikelnummer
and S . matrikelnummer in ( select ST . matrikelnummer
from costage_st_studierendenstammdaten ST
where $ { COSTAGE_STUDENT_FILTER } )
-- TSAB/AB:
-- TSAB/AB:
and T . kurzbezeichnung in ( ' AP ' , ' AAP ' ) - - Abschlussprüfung / Anerkannte Abschlussprüfung
and T . kurzbezeichnung in ( ' AP ' , ' AAP ' ) - - Abschlussprüfung / Anerkannte Abschlussprüfung
and L . leistungsstatus_nr in ( 4 , 2 ) - - Letztgültig / Final / gültige Leistung
and L . leistungsstatus_nr in ( 4 , 2 ) - - Letztgültig / Final / gültige Leistung
@ -152,7 +164,15 @@ update tmp_pruef set st_studiengang_nr=S.st_studiengang_nr
from costage_st_studien S
from costage_st_studien S
where S . st_studium_nr = tmp_pruef . st_studium_nr
where S . st_studium_nr = tmp_pruef . st_studium_nr
and S . st_studstamm_nr = tmp_pruef . st_studstamm_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
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 '
;
- - Fachsemester aus Sem . des Prüfungsdatums holen :
- - Fachsemester aus Sem . des Prüfungsdatums holen :
update tmp_pruef set
update tmp_pruef set
fachsemester = S . fachsemester
fachsemester = S . fachsemester
@ -161,6 +181,14 @@ where S.semester=tmp_pruef.semester
and S . st_studium_nr = tmp_pruef . st_studium_nr
and S . st_studium_nr = tmp_pruef . st_studium_nr
and S . matrikelnummer = tmp_pruef . matrikelnummer
and S . matrikelnummer = tmp_pruef . matrikelnummer
;
;
update tmp_pruef set
fachsemester_tsg = S . fachsemester
from costage_st_studien_aggr S
where S . semester = tmp_pruef . semester
and S . st_studium_nr_tsg = tmp_pruef . st_studium_nr
and S . matrikelnummer = tmp_pruef . matrikelnummer
and leistungsdetailtyp_kb = ' TSAB '
;
- - Prüfung kann nach letztem eingeschr . Semester sein , daher zuerst letztes Sem . ermitteln :
- - Prüfung kann nach letztem eingeschr . Semester sein , daher zuerst letztes Sem . ermitteln :
select S . st_studium_nr ,
select S . st_studium_nr ,
@ -183,15 +211,32 @@ update tmp_pruef set
st_studienstatus_nr = S . st_studienstatus_nr ,
st_studienstatus_nr = S . st_studienstatus_nr ,
- - fachsemester = S . fachsemester , - - wird oben ermittelt , ab 0 . 6 nicht mehr aus letztem Studiums - Semester
- - fachsemester = S . fachsemester , - - wird oben ermittelt , ab 0 . 6 nicht mehr aus letztem Studiums - Semester
studiengang_nr = S . studiengang_nr ,
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 ,
unikey = S . unikey
st_studiengang_nr_msg = S . st_studiengang_nr_msg
from tmp_max_sem M , costage_st_studien_aggr S
where S . matrikelnummer = M . matrikelnummer
and S . st_studium_nr = M . st_studium_nr
and S . semester = M . semester
and S . st_studium_nr_tsg = tmp_pruef . st_studium_nr
and S . matrikelnummer = tmp_pruef . matrikelnummer
and leistungsdetailtyp_kb = ' TSAB '
;
update tmp_pruef set
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
from tmp_max_sem M , costage_st_studien_aggr S
from tmp_max_sem M , costage_st_studien_aggr S
where S . matrikelnummer = M . matrikelnummer
where S . matrikelnummer = M . matrikelnummer
and S . st_studium_nr = M . st_studium_nr
and S . st_studium_nr = M . st_studium_nr
and S . semester = M . semester
and S . semester = M . semester
and S . st_studium_nr = tmp_pruef . st_studium_nr
and S . st_studium_nr = tmp_pruef . st_studium_nr
and S . matrikelnummer = tmp_pruef . matrikelnummer
and S . matrikelnummer = tmp_pruef . matrikelnummer
and leistungsdetailtyp_kb ! = ' TSAB '
;
;
drop table tmp_max_sem ;
drop table tmp_max_sem ;
@ -210,7 +255,7 @@ semester_msg=T.semester,
leistungsstatus_map_kb_msg = T . leistungsstatus_map_kb ,
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 )
from tmp_pruef2 T
from tmp_pruef2 T
where tmp_pruef . st_studiengang_nr_msg = T . st_studiengang_nr
where tmp_pruef . st_studiengang_nr = T . st_studiengang_nr
and tmp_pruef . leistungsdetailtyp_kb = ' TSAB '
and tmp_pruef . leistungsdetailtyp_kb = ' TSAB '
and T . matrikelnummer = tmp_pruef . matrikelnummer
and T . matrikelnummer = tmp_pruef . matrikelnummer
@ -231,17 +276,17 @@ where tmp_pruef.leistungsdetailtyp_kb !='TSAB'
;
;
- - Fachsemester bei MSG gibt es in CO nicht . Daher die Regel :
- - Fachsemester bei MSG gibt es in CO nicht . Daher die Regel :
- - die Fachsemesterzahl sollte die höchste FS - Zahl aus allen TSG enthalten :
- - die Fachsemesterzahl sollte die höchste FS - Zahl aus allen TSG enthalten :
select matrikelnummer , st_studiengang_nr_msg , max ( semester ) as semester_max , max ( fachsemester ) as fachsem_max
select matrikelnummer , st_studiengang_nr , max ( semester ) as semester_max , max ( fachsemester_tsg ) as fachsem_max
into temp tmp_fachsem_msg
into temp tmp_fachsem_msg
from tmp_pruef
from tmp_pruef
where leistungsdetailtyp_kb = ' TSAB '
where leistungsdetailtyp_kb = ' TSAB '
and st_studiengang_nr_msg is not null
and st_studiengang_nr is not null
group by 1 , 2 ;
group by 1 , 2 ;
update tmp_pruef set fachsemester = T . fachsem_max
update tmp_pruef set fachsemester = T . fachsem_max
from tmp_fachsem_msg T
from tmp_fachsem_msg T
where T . matrikelnummer = tmp_pruef . matrikelnummer
where T . matrikelnummer = tmp_pruef . matrikelnummer
and T . st_studiengang_nr_msg = tmp_pruef . st_studiengang_nr
and T . st_studiengang_nr = tmp_pruef . st_studiengang_nr
and T . semester_max < = tmp_pruef . semester
and T . semester_max < = tmp_pruef . semester
and tmp_pruef . leistungsdetailtyp_kb = ' BAKN '
and tmp_pruef . leistungsdetailtyp_kb = ' BAKN '
;
;
@ -259,21 +304,23 @@ and tmp_pruef.unikey is null
delete from costage_st_pruef_aggr
delete from costage_st_pruef_aggr
where semester > = $ { beginn_semester } ;
where semester > = $ { beginn_semester }
or semester_tsg > = $ { beginn_semester } ;
insert into costage_st_pruef_aggr ( st_studium_nr ,
insert into costage_st_pruef_aggr ( st_studium_nr ,
st_studstamm_nr ,
st_studstamm_nr ,
matrikelnummer ,
matrikelnummer ,
semester ,
semester ,
semester_tsg ,
semester_veranst ,
semester_veranst ,
st_studiengang_nr ,
st_studiengang_nr ,
st_studiengang_nr_m sg ,
st_studiengang_nr_t sg ,
studiengang_nr ,
studiengang_nr ,
fach_nr ,
fach_nr ,
unikey ,
unikey ,
studienidentifikator ,
studienidentifikator ,
fachsemester ,
fachsemester ,
leistung_nr ,
fachsemester_tsg ,
leistungstyp_nr ,
leistungstyp_nr ,
leistungsdetailtyp_kb ,
leistungsdetailtyp_kb ,
pnr ,
pnr ,
@ -281,51 +328,67 @@ insert into costage_st_pruef_aggr(st_studium_nr,
stp_sp_nr ,
stp_sp_nr ,
po_stp_stp_version_kb ,
po_stp_stp_version_kb ,
note ,
note ,
note_m sg ,
note_t sg ,
credits ,
credits ,
leistungsdatum ,
anerkannt_flag ,
anerkannt_flag ,
leistungsstatus_nr ,
leistungsstatus_nr ,
leistungsstatus_map_kb ,
leistungsstatus_map_kb ,
leistungsstatus_map_kb_msg ,
leistungsstatus_map_kb_tsg ,
leistung_nr_msg ,
leistung_nr ,
leistungsdatum_msg ,
leistung_nr_tsg ,
semester_msg ,
leistungsdatum ,
leistungsdatum_tsg ,
summe )
summe )
select
select
st_studium_nr ,
st_studium_nr ,
st_studstamm_nr ,
st_studstamm_nr ,
matrikelnummer ,
matrikelnummer ,
semester ,
( case when leistungsdetailtyp_kb = ' TSAB ' then semester_msg
else semester end ) as semester ,
( case when leistungsdetailtyp_kb = ' TSAB ' then semester
else null : : integer end ) as semester_tsg ,
semester_veranst ,
semester_veranst ,
st_studiengang_nr ,
st_studiengang_nr ,
st_studiengang_nr_msg ,
st_studiengang_nr_t sg ,
studiengang_nr ,
studiengang_nr ,
fach_nr ,
fach_nr ,
unikey ,
unikey ,
substring ( studienidentifikator from 1 for 255 ) ,
substring ( studienidentifikator from 1 for 255 ) ,
fachsemester ,
fachsemester ,
leistung_nr ,
fachsemester_tsg ,
leistungstyp_nr ,
leistungstyp_nr ,
leistungsdetailtyp_kb ,
leistungsdetailtyp_kb ,
pnr ,
pnr ,
abschnitt ,
abschnitt ,
stp_sp_nr ,
stp_sp_nr ,
po_stp_stp_version_kb ,
po_stp_stp_version_kb ,
case when pv_notenskala_typ_kb in ( ' DE1 ' , ' DE2 ' , ' DE3 ' , ' DE4 ' , ' DE5 ' , ' DE6 ' , ' DE7 ' ) or pv_notenskala_typ_kb is null then note_zahl else null : : float end as note ,
( case when leistungsdetailtyp_kb = ' TSAB ' then note_msg
note_msg ,
else (
case when pv_notenskala_typ_kb in ( ' DE1 ' , ' DE2 ' , ' DE3 ' , ' DE4 ' , ' DE5 ' , ' DE6 ' , ' DE7 ' )
or pv_notenskala_typ_kb is null
then note_zahl else null : : float end ) end ) as note ,
( case when leistungsdetailtyp_kb = ' TSAB ' and ( pv_notenskala_typ_kb in ( ' DE1 ' , ' DE2 ' , ' DE3 ' , ' DE4 ' , ' DE5 ' , ' DE6 ' , ' DE7 ' )
or pv_notenskala_typ_kb is null )
then note_zahl else null : : float end ) as note_tsg ,
credits ,
credits ,
leistungsdatum ,
anerkannt_flag ,
anerkannt_flag ,
leistungsstatus_nr ,
leistungsstatus_nr ,
leistungsstatus_map_kb ,
( case when leistungsdetailtyp_kb = ' TSAB ' then leistungsstatus_map_kb_msg
leistungsstatus_map_kb_msg ,
else leistungsstatus_map_kb end ) as leistungsstatus_map_kb ,
leistung_nr_msg ,
( case when leistungsdetailtyp_kb = ' TSAB ' then leistungsstatus_map_kb
leistungsdatum_msg ,
else null : : char ( 10 ) end ) as leistungsstatus_map_kb_tsg ,
semester_msg ,
( case when leistungsdetailtyp_kb = ' TSAB ' then leistung_nr_msg
count ( * )
else leistung_nr end ) as leistung_nr ,
( case when leistungsdetailtyp_kb = ' TSAB ' then leistung_nr
else null : : integer end ) as leistung_nr_tsg ,
( case when leistungsdetailtyp_kb = ' TSAB ' then leistungsdatum_msg
else leistungsdatum end ) as leistungsdatum ,
( case when leistungsdetailtyp_kb = ' TSAB ' then leistungsdatum
else null : : date end ) as leistungsdatum_tsg ,
1 as summe
from tmp_pruef
from tmp_pruef
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 , 24 , 25 , 26 , 27 , 28 , 29 , 30 ;
- - 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
;
drop table tmp_pruef ;
drop table tmp_pruef ;
drop table tmp_pruef2 ;
drop table tmp_pruef2 ;