Visualisierungsmodul für SuperX
http://www.superx-projekt.de/doku/viz_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.
151 lines
4.5 KiB
151 lines
4.5 KiB
44540^Studierende nach Semester und Studiengang^--Freemarker Template\ |
|
<#include "SQL_lingua_franca"/>\ |
|
<#include "SuperX_general"/>\ |
|
<sqlvars>\ |
|
<sqlvar name="semesterliste" type="hashsequence"><![CDATA[\ |
|
select tid as nr,eintrag as name from semester where 1=1\ |
|
/* and tid >= <<Seit Semester>> */\ |
|
/* and tid <= <<Bis Semester>> */\ |
|
order by 1 desc;\ |
|
]]>\ |
|
</sqlvar>\ |
|
</sqlvars>\ |
|
\ |
|
<#assign feldtyp="integer" />\ |
|
\ |
|
<#assign maxEbene=20 />\ |
|
<#if '<<Filter bis Ebene>>' != ''>\ |
|
<#assign maxEbene='<<Filter bis Ebene>>'?number />\ |
|
</#if>\ |
|
\ |
|
<#assign lehr_stg_ab="lehr_stg_ab"/>\ |
|
<#assign quelltabelle='sos_stg_aggr'/>\ |
|
\ |
|
-- ##################################################\ |
|
-- ##### Zwischentabelle #############\ |
|
-- ##################################################\ |
|
-- 1. FS start Datentabelle\ |
|
<@selectintotmp \ |
|
select="S.tid_stg,S.sem_rueck_beur_ein,S.geschlecht,sum(summe) as summe"\ |
|
source=quelltabelle+" S, "+lehr_stg_ab+" L"\ |
|
target="tmp_zwischen"> \ |
|
where \ |
|
\ |
|
<<Köpfe oder Fälle ?>>\ |
|
and <<Hörerstatus>>\ |
|
and S.sem_rueck_beur_ein between <<Seit Semester>> and <<Bis Semester>>\ |
|
and 's_' || L.tid in <@printkeys Studiengang.allNeededKeysList/>\ |
|
/* and L.stg in <@printkeys Fächer.allNeededKeysList/> --<<Fächer>> */ \ |
|
/* AND S.fach_sem_zahl <= <<bis Fachsemester>> */\ |
|
/* and S.stichtag = <<Stichtag>> */\ |
|
/* and L.abschluss in (<<Abschluss>>) */ \ |
|
and S.tid_stg = L.tid\ |
|
/* and S.fach_sem_zahl <= <<In der RSZ>> */\ |
|
/* and kz_rueck_beur_ein in(<<Status>>) */\ |
|
/* and geschlecht=<<Geschlecht>> */\ |
|
/* and ca12_staat <<Staatsangehörigkeit>> */\ |
|
/* and ${<<Filter Studierende>>} */\ |
|
and S.sem_rueck_beur_ein >= L.semester_von \ |
|
and S.sem_rueck_beur_ein <= L.semester_bis \ |
|
group by 1,2,3\ |
|
</@selectintotmp>\ |
|
<@informixnolog/>;\ |
|
\ |
|
\ |
|
\ |
|
-- Ausgabe-Tabelle\ |
|
create temp table tmp_aggre\ |
|
(ebene int,\ |
|
struktur varchar(255),\ |
|
text varchar(255),\ |
|
sortnr int,\ |
|
semester_nr integer,\ |
|
semester_name varchar(255),\ |
|
summe ${feldtyp},\ |
|
summe_w ${feldtyp}\ |
|
) <@informixnolog/>;\ |
|
\ |
|
\ |
|
\ |
|
\ |
|
\ |
|
-- ##################################################\ |
|
-- ######## Inserts in die Tabelle ##################\ |
|
-- ##################################################\ |
|
--Start der Schleifenverarbeitung über Fächer im ausgewählten Baum, Reihenfolge genau wie im Baum\ |
|
\ |
|
<#if semesterliste?has_content>\ |
|
<#assign sortnr=1>\ |
|
<#foreach semester in semesterliste>\ |
|
\ |
|
\ |
|
<#foreach einElement in Studiengang.elements>\ |
|
<@addcomment "############ Schleife Nr. " + "${sortnr}" + " Element: " + "${einElement.name}" + " strukturStr: " + "${einElement.strukturStr} ###########################"/>\ |
|
\ |
|
--select '${einElement.name} - ${einElement.strukturStr}' from xdummy; \ |
|
\ |
|
<#if einElement.level <= maxEbene >\ |
|
<#assign sortnr=sortnr+1>\ |
|
\ |
|
-- ########## Einfügen ####################\ |
|
insert into tmp_aggre (ebene,\ |
|
struktur,\ |
|
text, \ |
|
sortnr,\ |
|
semester_nr,\ |
|
semester_name,\ |
|
summe,\ |
|
summe_w\ |
|
)\ |
|
select ${einElement.level}::smallint,\ |
|
'${einElement.strukturStr}'::char(50),\ |
|
'${einElement.name}'::char(255),\ |
|
${sortnr},\ |
|
${semester.nr} as semester_nr,\ |
|
'${semester.name}' as semester_name,\ |
|
summe,\ |
|
(case when geschlecht=2 then summe else 0 end) as summe_w\ |
|
from tmp_zwischen S\ |
|
where 's_' || tid_stg in ${einElement.subkeys}\ |
|
and sem_rueck_beur_ein=${semester.nr}\ |
|
; \ |
|
\ |
|
</#if> \ |
|
\ |
|
</#foreach>--Studiengang Baum\ |
|
</#foreach>--Semester\ |
|
</#if>\ |
|
-- ##################################################\ |
|
-- ######## Ende Inserts in die Tabelle #############\ |
|
-- ##################################################\ |
|
\ |
|
\ |
|
drop table tmp_zwischen;\ |
|
\ |
|
-- Endselect\ |
|
select ebene,\ |
|
(case when ebene=1 then semester_name else text end) as text,\ |
|
sum(summe) as summe,\ |
|
sum(summe_w) as summe_w\ |
|
from tmp_aggre\ |
|
group by 1,2,sortnr\ |
|
order by sortnr,2\ |
|
;^XIL List\ |
|
sizable_columns horizontal_scrolling\ |
|
drop_and_delete movable_columns\ |
|
white_space_color=COLOR_WHITE\ |
|
fixed_columns=3\ |
|
min_heading_height=35\ |
|
Column CID=0 heading_text="Ebene" explanation="" center_heading\ |
|
row_selectable heading_platform readonly\ |
|
width=7 text_size=20 \ |
|
Column CID=1 heading_text="Studiengang" explanation="@@@sos_studiengang@@@" center_heading\ |
|
row_selectable heading_platform readonly\ |
|
width=40 text_size=60\ |
|
Column CID=2 heading_text="Summe" explanation="@@@sos_gesamt_stud@@@" center_heading\ |
|
row_selectable col_selectable rightJust heading_platform readonly\ |
|
width=8\ |
|
Column CID=2 heading_text="Summe weiblich" explanation="@@@sos_durchschnittsalter@@@" center_heading\ |
|
row_selectable col_selectable rightJust heading_platform readonly\ |
|
width=12\ |
|
@@@^Altersgruppe^Anzahl^je Fach/Studiengang^drop table tmp_aggre;^^3^700^360^0^1^^
|
|
|