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.
162 lines
3.2 KiB
162 lines
3.2 KiB
|
|
--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; |
|
|
|
|
|
|