--freemarker template <#if COSTAGE_einzpruef_anz_sem?exists && COSTAGE_einzpruef_anz_sem?string!=""> <#assign anz_sem=COSTAGE_einzpruef_anz_sem /> select min(S.tid) from semester S where S.sem_beginn >= today()-(182*${anz_sem}) ; ]]> --Leistungen mit Veranstaltung -> Semester: SELECT L.st_studium_nr, S.st_studstamm_nr, val(L.matrikelnummer) as matrikelnummer, null::integer as st_studiengang_nr, null::integer as studiengang_nr, null::integer as fach_nr, null::integer as st_studienstatus_nr, null::integer as semester, E.semester_tid as semester_veranst, E.st_sem_nr, null::integer as fachsemester, null::varchar(255) as unikey, L.leistung_nr, L.leistungstyp_nr, L.leistungsdetailtyp_kb, L.studienidentifikator, L.spov_abschluss, L.stp_sp_nr, L.veranstaltung_nummer, L.veranstaltung_semester, L.veranstaltung_titel, L.veranstaltung_art, L.semesterstunden, L.unterrichtseinheiten, L.thema_individuell, L.pv_notenskala_nr, L.note, L.note_name, L.note_zahl, L.pv_pruef_zusatz_typen_nr, L.note_zusatz, L.note_zusatz_name, L.note_positiv_flag, L.note_negativ_flag, L.pv_notenskala_typ_nr, L.pv_notenskala_typ_kb, L.pv_notenskala_typ_name, L.credits, date(L.leistungsdatum) as leistungsdatum, L.anerkannt_flag, L.zusatzleistung_flag, L.leistungsstatus_nr, L.leistungsstatus_map_kb, null::integer as abschnitt, null::integer as pnr, null::integer as leistung_nr_msg, null::integer as st_studiengang_nr_msg, null::date as leistungsdatum_msg, null::integer as semester_msg 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 and T.leistungstyp_nr=L.leistungstyp_nr and S.matrikelnummer::varchar(255)=L.matrikelnummer -- TSAB/AB: --and T.kurzbezeichnung in ('AP','AAP') --Abschlussprüfung/Anerkannte Abschlussprüfung and L.leistungsstatus_nr in (4,2) --Letztgültig/Final/gültige Leistung --px_leistungen_status_typen_v: --4^F^Letztgültig^Final^ --1^P^in Bearbeitung^in process^ --2^V^gültige Leistung^valid^ --3^I^ungültige Leistung^invalid^ --5^D^gelöscht^deleted^ and E.semester_tid >= ${beginn_semester} ; --Leistungen ohne Veranstaltungssemester gehen über Prüfungsdatum: insert into tmp_pruef SELECT L.st_studium_nr, S.st_studstamm_nr, val(L.matrikelnummer) as matrikelnummer, null::integer as st_studiengang_nr, null::integer as studiengang_nr, null::integer as fach_nr, null::integer as st_studienstatus_nr, E.semester_tid as semester, null::integer as semester_veranst, null::integer as st_sem_nr, null::integer as fachsemester, null::varchar(255) as unikey, L.leistung_nr, L.leistungstyp_nr, L.leistungsdetailtyp_kb, L.studienidentifikator, L.spov_abschluss, L.stp_sp_nr, L.veranstaltung_nummer, L.veranstaltung_semester, L.veranstaltung_titel, L.veranstaltung_art, L.semesterstunden, L.unterrichtseinheiten, L.thema_individuell, L.pv_notenskala_nr, L.note, L.note_name, L.note_zahl, L.pv_pruef_zusatz_typen_nr, L.note_zusatz, L.note_zusatz_name, L.note_positiv_flag, L.note_negativ_flag, L.pv_notenskala_typ_nr, L.pv_notenskala_typ_kb, L.pv_notenskala_typ_name, L.credits, date(L.leistungsdatum) as leistungsdatum, L.anerkannt_flag, L.zusatzleistung_flag, L.leistungsstatus_nr, L.leistungsstatus_map_kb, 2::integer as abschnitt, --provisorisch erstmal nur Hauptprüfungen null::integer as pnr, null::integer as leistung_nr_msg, null::integer as st_studiengang_nr_msg, null::date as leistungsdatum_msg, null::integer as semester_msg 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 and T.leistungstyp_nr=L.leistungstyp_nr and S.matrikelnummer::varchar(255)=L.matrikelnummer -- TSAB/AB: --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 E.semester_tid >= ${beginn_semester} ; update tmp_pruef set semester=E.semester_tid FROM costage_st_semester E where tmp_pruef.leistungsdatum between E.semester_anfang and E.semester_ende and tmp_pruef.semester is null; update tmp_pruef set st_sem_nr=E.st_sem_nr FROM costage_st_semester E where tmp_pruef.leistungsdatum between E.semester_anfang and E.semester_ende and tmp_pruef.st_sem_nr is null; update tmp_pruef set semester_veranst=semester where semester_veranst is null; --Fachsem. nachladen: update tmp_pruef set fachsemester=F.fachsemester from costage_st_fachsemester F where F.st_studium_nr=tmp_pruef.st_studium_nr and F.st_sem_nr=tmp_pruef.st_sem_nr and F.fachsemestertyp='FS' ; --Studiengang nachladen update tmp_pruef set st_studiengang_nr=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 ; --unikey nachladen: 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 and K.st_skz_nr=G.st_skz_nr ; --verknüpfen mit SPO Kontext: select P.*, G.context_type, G.stp_knoten_nr_sichtbar, G.ghk_nr, G.st_studium_nr as spo_st_studium_nr, null::varchar(255) as ghk_typ_kurzbezeichnung into temp tmp_pruef2 from tmp_pruef P left outer join costage_studienplankontexte G on (P.leistung_nr=G.leistungs_nr) ; update tmp_pruef2 set ghk_typ_kurzbezeichnung=G.typ_kurzbezeichnung from costage_gleichheitsknoten G where G.ghk_nr=tmp_pruef2.ghk_nr ; truncate table costage_st_einzpruef_aggr; insert into costage_st_einzpruef_aggr(st_studium_nr, st_studstamm_nr, matrikelnummer, semester, semester_veranst, st_studiengang_nr, st_studiengang_nr_msg, studiengang_nr, fach_nr, unikey, studienidentifikator, fachsemester, leistung_nr, leistungstyp_nr, leistungsdetailtyp_kb, pnr, abschnitt, stp_sp_nr, veranstaltung_nummer, veranstaltung_titel, veranstaltung_art, semesterstunden, unterrichtseinheiten, thema_individuell, note, credits, leistungsdatum, anerkannt_flag, zusatzleistung_flag, leistungsstatus_nr, leistungsstatus_map_kb, leistung_nr_msg, leistungsdatum_msg, semester_msg, context_type, stp_knoten_nr_sichtbar, ghk_nr, spo_st_studium_nr, ghk_typ_kurzbezeichnung, summe) select st_studium_nr, st_studstamm_nr, matrikelnummer, semester, semester_veranst, st_studiengang_nr, st_studiengang_nr_msg, studiengang_nr, fach_nr, unikey, substring(studienidentifikator from 1 for 255), fachsemester, leistung_nr, leistungstyp_nr, leistungsdetailtyp_kb, pnr, abschnitt, stp_sp_nr, veranstaltung_nummer, substring(veranstaltung_titel from 1 for 255), veranstaltung_art, semesterstunden, unterrichtseinheiten, substring(thema_individuell from 1 for 255), 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, credits, leistungsdatum, anerkannt_flag, zusatzleistung_flag, leistungsstatus_nr, leistungsstatus_map_kb, leistung_nr_msg, leistungsdatum_msg, semester_msg, context_type, stp_knoten_nr_sichtbar, ghk_nr, spo_st_studium_nr, ghk_typ_kurzbezeichnung, count(*) from tmp_pruef2 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,31,32,33,34,35,36,37,38,39; drop table tmp_pruef; drop table tmp_pruef2;