Schnittstelle CampusOnline (TU Graz) zu SuperX-Modul COSTAGE
http://www.superx-projekt.de/doku/costage_modul/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
3.9 KiB
156 lines
3.9 KiB
|
|
|
|
create temp table tmp_st_studierendenstammdaten( |
|
st_studstamm_nr INTEGER not null, |
|
matrikelnummer INTEGER , |
|
vorname VARCHAR(255) , |
|
familienname VARCHAR(255) , |
|
geburtsdatum timestamptz , |
|
st_land1_nr INTEGER , |
|
st_land2_nr INTEGER , |
|
geburt_st_land_nr INTEGER , |
|
personentyp_name VARCHAR(100) , |
|
personentyp_kb VARCHAR(10) , |
|
aufnahmedatum timestamptz , |
|
abmeldungsdatum timestamptz , |
|
geschlecht INTEGER , |
|
d_geburt DATE , |
|
ca12_staat INTEGER , |
|
second_nationality INTEGER , |
|
d_exmatr DATE , |
|
abm_art_p char(10), |
|
semester_max INTEGER |
|
) |
|
; |
|
|
|
--zuerst Ermittlung max. Semester |
|
select S.st_studstamm_nr,max(SM.semester_tid)::integer as semester_max |
|
into temp tmp_max |
|
from costage_st_studierendenstammdaten_neu S, |
|
costage_st_studien ST, |
|
costage_st_semester SM, |
|
costage_st_studienstatus SA |
|
where S.st_studstamm_nr = ST.st_studstamm_nr |
|
and SA.st_studium_nr=ST.st_studium_nr |
|
and SA.st_sem_nr=SM.st_sem_nr |
|
and SA.studienstatustyp not in ('a','o') |
|
and S.matrikelnummer is not null |
|
group by 1 |
|
; |
|
|
|
|
|
|
|
|
|
insert into tmp_st_studierendenstammdaten( |
|
st_studstamm_nr, |
|
matrikelnummer, |
|
vorname, |
|
familienname, |
|
geburtsdatum, |
|
st_land1_nr, |
|
st_land2_nr, |
|
geburt_st_land_nr, |
|
personentyp_name, |
|
personentyp_kb, |
|
aufnahmedatum, |
|
abmeldungsdatum, |
|
geschlecht, |
|
-- ca12_staat, |
|
-- second_nationality, |
|
d_geburt, |
|
-- d_exmatr, |
|
semester_max) |
|
select |
|
S.st_studstamm_nr, |
|
val(S.matrikelnummer), |
|
vorname, |
|
familienname, |
|
geburtsdatum, |
|
st_land1_nr, |
|
st_land2_nr, |
|
geburt_st_land_nr, |
|
personentyp_name, |
|
personentyp_kb, |
|
date_val(aufnahmedatum), |
|
abmeldungsdatum, |
|
(case when S.geschlecht='M' then 1 |
|
when S.geschlecht='W' then 2 |
|
when S.geschlecht='X' then 3 |
|
else 4 end)::smallint as geschlecht, |
|
date(S.geburtsdatum) as d_geburt, |
|
M.semester_max |
|
FROM costage_st_laender L, costage_st_studierendenstammdaten_neu S left outer join tmp_max M |
|
on (M.st_studstamm_nr=S.st_studstamm_nr) |
|
where L.st_land_nr=S.st_land1_nr |
|
and S.matrikelnummer is not null |
|
; |
|
|
|
--TODO: statt semesterende das tatsächliche Abmeldungsdatum |
|
update tmp_st_studierendenstammdaten set d_exmatr=date(S.semester_ende), |
|
abm_art_p=A.st_abm_art_kurzbezeichnung |
|
from costage_st_personen_abmeldungen A,costage_st_semester S |
|
where A.st_sem_nr=S.st_sem_nr |
|
and A.st_studstamm_nr=tmp_st_studierendenstammdaten.st_studstamm_nr |
|
and S.semester_tid=tmp_st_studierendenstammdaten.semester_max |
|
and A.person_flag='J'; |
|
|
|
|
|
update tmp_st_studierendenstammdaten set ca12_staat=val(L.statistik_code) |
|
from costage_st_laender L |
|
where L.st_land_nr=tmp_st_studierendenstammdaten.st_land1_nr; |
|
|
|
update tmp_st_studierendenstammdaten set second_nationality=val(L.statistik_code) |
|
from costage_st_laender L |
|
where L.st_land_nr=tmp_st_studierendenstammdaten.st_land2_nr; |
|
|
|
delete from costage_st_studierendenstammdaten |
|
where 0 < (select count(*) from tmp_st_studierendenstammdaten) --bei CSV Upload kann die Tab. leer sein, daher abfangen |
|
; |
|
|
|
insert into costage_st_studierendenstammdaten( |
|
st_studstamm_nr, |
|
matrikelnummer, |
|
vorname, |
|
familienname, |
|
geburtsdatum, |
|
st_land1_nr, |
|
st_land2_nr, |
|
geburt_st_land_nr, |
|
personentyp_name, |
|
personentyp_kb, |
|
aufnahmedatum, |
|
abmeldungsdatum, |
|
geschlecht, |
|
ca12_staat, |
|
second_nationality, |
|
d_geburt, |
|
d_exmatr, |
|
abm_art_p, |
|
semester_max) |
|
select |
|
st_studstamm_nr, |
|
matrikelnummer, |
|
vorname, |
|
familienname, |
|
geburtsdatum, |
|
st_land1_nr, |
|
st_land2_nr, |
|
geburt_st_land_nr, |
|
personentyp_name, |
|
personentyp_kb, |
|
aufnahmedatum, |
|
abmeldungsdatum, |
|
geschlecht, |
|
ca12_staat, |
|
second_nationality, |
|
d_geburt, |
|
d_exmatr, |
|
abm_art_p, |
|
semester_max |
|
FROM tmp_st_studierendenstammdaten |
|
; |
|
|
|
drop table tmp_max; |
|
drop table tmp_st_studierendenstammdaten; |
|
|
|
|
|
|