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.

237 lines
6.9 KiB

43000^Studierende (Zeitreihe) CO Basisdaten^--Freemarker Template\
<#include "SQL_lingua_franca"/>\
<#include "SuperX_general"/>\
<#if "<<Köpfe oder Fälle ?>>"?index_of("S.gewichtung") != -1 ||"<<Köpfe oder Fälle ?>>"?index_of("gew") != -1 || "<<Köpfe oder Fälle ?>>"?index_of("vzae") != -1 || "<<Köpfe oder Fälle ?>>"?index_of("ffaelle") != -1>\
<#assign feldtyp="decimal(21,9)" />\
<#else>\
<#assign feldtyp="integer" />\
</#if>\
\
<#assign lehr_stg_ab="lehr_stg_ab"/>\
<#assign quelltabelle='sos_stg_aggr'/>\
<#if "<<Köpfe oder Fälle ?>>"?index_of("S.gewichtung_id=")!=-1>\
<#assign lehr_stg_ab="lehr_stg_ab_gew"/>\
<#assign quelltabelle='sos_stud_gewichtung'/>\
</#if>\
\
/* <#assign extension= <<Trennen nach>> > */\
\
create temp table tmp_studis1 \
(semester integer,\
semester_bezeichnung varchar(255),\
semester_sort varchar(10),\
m_1fs ${feldtyp}, \
w_1fs ${feldtyp},\
gesamt_1fs ${feldtyp},\
m_gesamt ${feldtyp},\
w_gesamt ${feldtyp},\
gesamt ${feldtyp}\
)\
<@informixnolog/>;\
\
create temp table tmp_studis2\
(semester integer,\
semester_bezeichnung varchar(255),\
semester_sort varchar(10),\
m_1fs ${feldtyp}, \
w_1fs ${feldtyp},\
gesamt_1fs ${feldtyp},\
m_gesamt ${feldtyp},\
w_gesamt ${feldtyp},\
gesamt ${feldtyp}\
)\
<@informixnolog/>;\
\
--zun. temp. Tabelle\
SELECT\
val('20' || replace(replace(SEM.semester_id,'S','1'),'W','2')) as semester,\
SEM.semester_id as semester_sort,\
SEM.semester_bezeichnung,\
G.stp_stp_nr as studeingang_nr ,--substr(F.stgnr,1,1), TODO paßt das?\
F.st_stdfach_nr as fach_nr,--substr(F.stgnr,length(F.stgnr),1),\
ST.studienstatustyp as status,\
FS.fachsemester as fach_sem_zahl,\
H.hoererstatus_kb as hrst,\
V.studienform_statistik_code as stufrm,\
ST.gueltig_ab as ruebeudat, --TODO: jeweils letzten Datensatz pro Semester\
ST.gueltig_ab as endedat,--TODO: jeweils letzten Datensatz pro Semester\
ST.gueltig_ab as anfdat,--TODO: jeweils letzten Datensatz pro Semester\
'H' as primaerfach,\
F.unikey,\
S.geschlecht,\
count(*) as summe\
into temp tmp_studien\
from \
costage_st_hoererstatus H,\
costage_st_studierendenstammdaten S,\
costage_st_studienstatus ST,\
costage_st_studiengaenge G,\
costage_st_studienkennzahlen F,\
costage_st_abschlussziele_lokal A,\
costage_st_fachsemester FS,\
costage_st_semester SEM,\
costage_st_studien V ,\
costage_st_hauptstudien K\
where \
K.st_studium_nr=V.st_studium_nr\
and SEM.st_sem_nr=K.st_sem_nr\
and F.st_skz_nr=G.st_skz_nr\
and V.st_studiengang_nr=G.st_studiengang_nr\
and FS.st_studium_nr=V.st_studium_nr\
and SEM.st_sem_nr=FS.st_sem_nr\
and FS.fachsemestertyp='FS' --TODO: klin.Semester=KS\
and G.st_absz_nr=A.st_absz_nr\
and S.st_studstamm_nr=V.st_studstamm_nr\
and H.st_studstamm_nr=S.st_studstamm_nr\
and H.st_sem_nr=SEM.st_sem_nr\
and ST.st_studium_nr=V.st_studium_nr\
and ST.st_sem_nr=SEM.st_sem_nr\
and date(SEM.semester_anfang) >= date_val('01.01.2000')\
--and S.matrikelnummer='7344750'\
--and SEM.st_sem_nr=178\
and val('20' || replace(replace(SEM.semester_id,'S','1'),'W','2')) >= <<Seit Semester>>\
/* and val('20' || replace(replace(SEM.semester_id,'S','1'),'W','2')) <= <<Bis Semester>> */\
\
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15\
\
--AND F.semester >= $start_stud_sem\
;\
\
insert into tmp_studis1(semester ,\
semester_bezeichnung,\
semester_sort,\
m_1fs, \
w_1fs,\
gesamt_1fs,\
m_gesamt ,\
w_gesamt ,\
gesamt)\
\
select semester,\
semester_bezeichnung,\
semester_sort,\
(case when geschlecht='M' and fach_sem_zahl=1 then summe else 0 end) as m_1fs,\
(case when geschlecht='W' and fach_sem_zahl=1 then summe else 0 end) as w_1fs,\
(case when fach_sem_zahl=1 then summe else 0 end) as gesamt_1fs,\
(case when geschlecht='M' then summe else 0 end) as m_gesamt,\
(case when geschlecht='W' then summe else 0 end) as w_gesamt,\
summe\
from tmp_studien S\
--group by semester,semester_bezeichnung,semester_sort, geschlecht,fach_sem_zahl\
; \
\
\
\
insert into tmp_studis2(semester ,\
semester_bezeichnung,\
semester_sort,\
m_1fs , \
w_1fs ,\
gesamt_1fs,\
m_gesamt ,\
w_gesamt,\
gesamt)\
\
select semester ,\
semester_bezeichnung,\
semester_sort,\
sum(m_1fs ), \
sum(w_1fs ),\
sum(gesamt_1fs),\
sum(m_gesamt) ,\
sum(w_gesamt),\
sum(gesamt)\
from tmp_studis1\
group by 1,2,3;\
\
\
update tmp_studis2\
set gesamt = null where gesamt = 0;\
update tmp_studis2\
set gesamt_1fs = null where gesamt_1fs = 0;\
update tmp_studis2\
set w_gesamt = null where w_gesamt = 0;\
\
\
<@selectintotmp \
select="semester ,\
semester_bezeichnung,\
semester_sort,\
m_1fs , \
w_1fs ,\
gesamt_1fs,\
m_gesamt ,\
w_gesamt,\
gesamt"\
source="tmp_studis2"\
target="tmp_studis">\
order by semester_sort desc\
</@selectintotmp>\
<@informixnolog/>;\
\
\
-- insert into tmp_studis (eintrag)\
-- values ("");\
\
\
drop table tmp_studis1;\
drop table tmp_studis2;\
drop table tmp_studien;\
\
-- Falls Division durch 0 vorkommen sollte, Division durch NULL ist möglich\
\
select semester_bezeichnung, \
gesamt,\
gesamt_1fs, \
round((100*gesamt_1fs)::decimal(21,9)/gesamt,2),\
'',\
w_gesamt, round((100*w_gesamt)::decimal(21,9)/gesamt,2),\
w_1fs, round((100*w_1fs)::decimal(21,9)/gesamt_1fs,2)\
from tmp_studis \
order by semester_sort desc \
;^--Freemarker Template\
/* <#assign extension= <<Trennen nach>> > */\
\
XIL List\
sizable_columns horizontal_scrolling\
white_space_color=COLOR_WHITE fixed_columns=1\
drop_and_delete movable_columns\
min_heading_height=55\
Column CID=0 heading_text="@@sos_semester@@" explanation="@@@sos_semester@@@" center_heading\
row_selectable heading_platform readonly\
width=10\
Column CID=1 heading_text="Gesamt-\
zahl" explanation="@@@sos_gesamtzahl@@@" center_heading\
row_selectable col_selectable rightJust heading_platform\
readonly\
width=8\
Column CID=2 heading_text="1. @@FS@@\
gesamt" explanation="@@@sos_1fs_ges@@@" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=8\
Column CID=3 heading_text="1. @@FS@@\
in %" explanation="@@@sos_1fs_proz@@@" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=8\
Column CID=6 heading_text=" " explanation="" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=1\
Column CID=7 heading_text="dar.\
Frauen" explanation="@@@sos_frauen_sem@@@" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=8\
Column CID=8 heading_text="Frauen\
in %" explanation="@@@sos_frauen_proz@@@" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=8\
Column CID=9 heading_text="1. @@FS@@\
Frauen" explanation="@@@sos_frauen_1fs@@@" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=8\
Column CID=10 heading_text="1. @@FS@@\
Frauen\
in %" explanation="@@@sos_frauen_1fs_proz@@@" center_heading\
row_selectable col_selectable rightJust heading_platform readonly\
width=8\
@@@^Semester^Anzahl^Zeitreihe zur Anzeige des Datenbestandes aus CO^drop table tmp_studis;^-leer-^2^700^360^0^1^^