2 changed files with 166 additions and 0 deletions
@ -0,0 +1,162 @@ |
|||||||
|
|
||||||
|
--Freemarker Template |
||||||
|
--Semester füllen: |
||||||
|
<sqlvars> |
||||||
|
<sqlvar name="sos_installed"> |
||||||
|
select count(*) from db_version where his_system ='sos'; |
||||||
|
</sqlvar> |
||||||
|
<sqlvar name="min_jahr"> |
||||||
|
select year(today())-7 from xdummy; |
||||||
|
|
||||||
|
</sqlvar> |
||||||
|
<sqlvar name="max_jahr"> |
||||||
|
select year(today()) from xdummy; |
||||||
|
|
||||||
|
</sqlvar> |
||||||
|
</sqlvars> |
||||||
|
|
||||||
|
create temp table tmp_semester( |
||||||
|
tid INTEGER , |
||||||
|
kurz CHAR(50) , |
||||||
|
druck CHAR(200) , |
||||||
|
akad_jahr SMALLINT , |
||||||
|
akad_jahr_absolv SMALLINT , |
||||||
|
akad_jahr_anf SMALLINT , |
||||||
|
sem_beginn DATE , |
||||||
|
sem_ende DATE |
||||||
|
) |
||||||
|
; |
||||||
|
|
||||||
|
create temp table tmp_cif |
||||||
|
( |
||||||
|
tid serial, |
||||||
|
key smallint , |
||||||
|
hs integer , |
||||||
|
apnr integer, |
||||||
|
kurz char(10), |
||||||
|
druck varchar(100), |
||||||
|
lang_1 varchar(100), |
||||||
|
lang_3 varchar(100), |
||||||
|
astat INTEGER , |
||||||
|
parent INTEGER , |
||||||
|
sortc1 CHAR(10) , |
||||||
|
bund_apnr CHAR(10) , |
||||||
|
sprache CHAR(3), |
||||||
|
d_akt_von date, |
||||||
|
d_akt_bis date |
||||||
|
); |
||||||
|
create temp table tmp_hilf(tid integer); |
||||||
|
|
||||||
|
<#if sos_installed=1> |
||||||
|
|
||||||
|
|
||||||
|
insert into tmp_semester ( |
||||||
|
tid, |
||||||
|
kurz, |
||||||
|
druck, |
||||||
|
sem_beginn, |
||||||
|
sem_ende |
||||||
|
) |
||||||
|
select |
||||||
|
tid, |
||||||
|
eintrag, |
||||||
|
eintrag, |
||||||
|
sem_beginn, |
||||||
|
sem_ende |
||||||
|
from semester; |
||||||
|
|
||||||
|
<#else> |
||||||
|
|
||||||
|
<#list min_jahr..max_jahr as i> |
||||||
|
|
||||||
|
--SoSe: |
||||||
|
|
||||||
|
insert into tmp_semester ( |
||||||
|
tid, |
||||||
|
kurz, |
||||||
|
druck, |
||||||
|
sem_beginn, |
||||||
|
sem_ende |
||||||
|
) |
||||||
|
select ${i}1,${i}1,'SoSe ${i}', |
||||||
|
date_val('01.04.${i}'), |
||||||
|
date_val('30.09.${i}') |
||||||
|
from xdummy; |
||||||
|
|
||||||
|
--WS: |
||||||
|
insert into tmp_semester ( |
||||||
|
tid, |
||||||
|
kurz, |
||||||
|
druck, |
||||||
|
sem_beginn, |
||||||
|
sem_ende |
||||||
|
) |
||||||
|
select ${i}2,${i}2,'WiSe ${i}/${i+1}', |
||||||
|
date_val('01.10.${i}'), |
||||||
|
date_val('31.03.${i}') |
||||||
|
from xdummy; |
||||||
|
|
||||||
|
</#list> |
||||||
|
</#if> |
||||||
|
|
||||||
|
-- Akademische Jahre für BAW und SA |
||||||
|
-- Erläuterung: |
||||||
|
-- Sachsen: |
||||||
|
-- Akademisches Jahr für Absolventen: 2016 = 20152 + 20161 |
||||||
|
-- Akademisches Jahr für Studienanfänger: 2016 = 20161 + 20162 |
||||||
|
-- Baden Würtemberg: |
||||||
|
-- Akademisches Jahr: 2016 = 20162 + 20171 |
||||||
|
-- Akademisches Jahr: 2017 = 20172 + 20181 |
||||||
|
|
||||||
|
|
||||||
|
--Berechnung akad.Jahr BaWue: |
||||||
|
--WS + nachfolgendes SS (2006 = 20062 + 20071) |
||||||
|
--WS |
||||||
|
update tmp_semester set akad_jahr=(tid/10) where mod(tid,10)=2; |
||||||
|
--SS |
||||||
|
update tmp_semester set akad_jahr=(tid/10)-1 where mod(tid,10)=1; |
||||||
|
|
||||||
|
|
||||||
|
--Berechnung akad.Jahr SA Absolventen: |
||||||
|
--vorheriges WS + SS (2006 = 20052 + 20061) |
||||||
|
--WS |
||||||
|
update tmp_semester set akad_jahr_absolv=(tid/10)+1 where mod(tid,10)=2; |
||||||
|
--SS |
||||||
|
update tmp_semester set akad_jahr_absolv=(tid/10) where mod(tid,10)=1; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--Berechnung akad.Jahr SA Studienanfänger: |
||||||
|
--SS + WS (2006 = 20061 + 20062) |
||||||
|
--WS |
||||||
|
update tmp_semester set akad_jahr_anf=(tid/10) where mod(tid,10)=2; |
||||||
|
--SS |
||||||
|
update tmp_semester set akad_jahr_anf=(tid/10) where mod(tid,10)=1; |
||||||
|
|
||||||
|
|
||||||
|
delete from tmp_semester where tid in (select apnr from cif where key=661); |
||||||
|
|
||||||
|
insert into tmp_cif(key,hs,apnr,kurz,druck,lang_1,d_akt_von,d_akt_bis) |
||||||
|
select distinct 661::integer,0::integer,tid,tid,druck,druck,sem_beginn,sem_ende |
||||||
|
from tmp_semester |
||||||
|
where tid is not null; |
||||||
|
|
||||||
|
delete from cif where '' || key || '_' || apnr in |
||||||
|
(select '' || key || '_' || apnr from tmp_cif); |
||||||
|
|
||||||
|
|
||||||
|
insert into tmp_hilf select max(tid) from cif; |
||||||
|
update tmp_hilf set tid=1 where tid is null; |
||||||
|
|
||||||
|
insert into cif(tid,key,hs,apnr,kurz,druck,lang_1,lang_3,d_akt_von,d_akt_bis |
||||||
|
|
||||||
|
) |
||||||
|
select C.tid+H.tid,key,hs,apnr,kurz,druck,lang_1,lang_3,d_akt_von,d_akt_bis |
||||||
|
from tmp_cif C, tmp_hilf H |
||||||
|
where apnr is not null; |
||||||
|
|
||||||
|
drop table tmp_cif; |
||||||
|
drop table tmp_semester; |
||||||
|
drop table tmp_hilf; |
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in new issue