2 changed files with 166 additions and 0 deletions
@ -0,0 +1,162 @@
@@ -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