14 changed files with 228852 additions and 203243 deletions
@ -1 +1,480 @@ |
|||||||
47140^Studierende / Studienanfänger_innen (Hochschulvergleich)^<sximport>select select_stmt from maskeninfo where tid=48000</sximport>^<sximport>select xil_proplist from maskeninfo where tid=48000</sximport>^Studienfach^Anzahl bzw. Anteil^Studierende und Anteil weiblicher Studierender als Zeitreihe mit Frauenanteil eigene Hochschule zu anderen Hochschulen^<sximport>select cleanup_stmt from maskeninfo where tid=48000</sximport>^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^ |
47140^Studierende / Studienanfänger_innen (Hochschulvergleich)^--Freemarker Template\ |
||||||
|
<#include "SQL_lingua_franca"/>\ |
||||||
|
<#include "SuperX_general"/>\ |
||||||
|
--\ |
||||||
|
--Autor D. Quathamer 2024\ |
||||||
|
<sqlvars>\ |
||||||
|
<sqlvar name="my_base_rs"><![CDATA[\ |
||||||
|
select R.uniquename\ |
||||||
|
from rpta_resultset R, rpta_column_layout L\ |
||||||
|
where L.resultset_id=R.tid\ |
||||||
|
and L.uniquename=<<Spaltenlayout>>;]]>\ |
||||||
|
</sqlvar>\ |
||||||
|
<sqlvar name="basetable" type="hash"><![CDATA[\ |
||||||
|
SELECT distinct T.name,\ |
||||||
|
R.is_virtual,\ |
||||||
|
name as runtime_tablename\ |
||||||
|
from sx_tables T, rpta_resultset R \ |
||||||
|
where T.name=R.uniquename\ |
||||||
|
and T.name='${my_base_rs}'\ |
||||||
|
and R.is_virtual=0\ |
||||||
|
\ |
||||||
|
union\ |
||||||
|
select R.uniquename,\ |
||||||
|
R.is_virtual,\ |
||||||
|
'tmp_' || R.uniquename as runtime_tablename\ |
||||||
|
from rpta_resultset R where R.uniquename='${my_base_rs}'\ |
||||||
|
and R.is_virtual=1\ |
||||||
|
;\ |
||||||
|
]]>\ |
||||||
|
</sqlvar>\ |
||||||
|
<sqlvar name="rpta_resultset" type="hash"><![CDATA[\ |
||||||
|
select caption,\ |
||||||
|
uniquename,\ |
||||||
|
fieldclause,\ |
||||||
|
joinclause,\ |
||||||
|
whereclause,\ |
||||||
|
systeminfo_id\ |
||||||
|
from rpta_resultset\ |
||||||
|
where uniquename='${basetable.name}';\ |
||||||
|
\ |
||||||
|
]]></sqlvar>\ |
||||||
|
<sqlvar name="rpta_column_layout" type="hash"><![CDATA[\ |
||||||
|
select L.uniquename,\ |
||||||
|
L.caption,\ |
||||||
|
L.whereclause,\ |
||||||
|
R.is_virtual,\ |
||||||
|
L.sortclause\ |
||||||
|
from rpta_resultset R, rpta_column_layout L\ |
||||||
|
where L.resultset_id=R.tid\ |
||||||
|
and R.uniquename='${basetable.name}'\ |
||||||
|
and L.uniquename=<<Spaltenlayout>>;\ |
||||||
|
\ |
||||||
|
]]></sqlvar>\ |
||||||
|
<sqlvar name="columns" type="hashsequence"><![CDATA[\ |
||||||
|
SELECT C.srcfieldname,\ |
||||||
|
(case when string_not_null(C.targetfieldname)='' then C.srcfieldname else C.targetfieldname end) as targetfieldname,\ |
||||||
|
T.uniquename as coltype,\ |
||||||
|
C.uniquename,\ |
||||||
|
C.is_aggregate,\ |
||||||
|
(case when string_not_null(CL.caption)='' then C.caption else CL.caption end) as caption,\ |
||||||
|
CL.is_visible,\ |
||||||
|
CL.visible_size as visible_width,\ |
||||||
|
F.sql_code as format_sql,\ |
||||||
|
F.uniquename as format_uniquename,\ |
||||||
|
C.col_function as colfunction,\ |
||||||
|
(case when string_not_null(CL.description)='' then C.description else CL.description end) as description\ |
||||||
|
FROM rpta_column_layout L, rpta_column C, rpta_column_type T,rpta_column2layout CL \ |
||||||
|
left outer join rpta_format_code F on (F.tid=CL.format_code_id)\ |
||||||
|
where L.tid=CL.layout_id\ |
||||||
|
and C.tid=CL.column_id\ |
||||||
|
and T.tid=C.column_type\ |
||||||
|
and L.uniquename=<<Spaltenlayout>>\ |
||||||
|
/* and C.uniquename in (<<Spalten>>) */\ |
||||||
|
order by CL.sortnr\ |
||||||
|
;\ |
||||||
|
]]></sqlvar>\ |
||||||
|
<sqlvar name="endsemester"><![CDATA[\ |
||||||
|
SELECT max(tid)\ |
||||||
|
from semester \ |
||||||
|
where 1=1\ |
||||||
|
/* and tid >= <<Seit Semester>> */\ |
||||||
|
/* and tid <= <<Bis Semester>> */\ |
||||||
|
<#if "<<Semestertyp>>"="1" || "<<Semestertyp>>"="2">\ |
||||||
|
and substring('' || tid from 5 for 1)='<<Semestertyp>>'\ |
||||||
|
</#if>\ |
||||||
|
;\ |
||||||
|
\ |
||||||
|
]]></sqlvar>\ |
||||||
|
<sqlvar name="vergleichsgruppen" type="hashsequence"><![CDATA[\ |
||||||
|
SELECT tid,name,uniquename,ordnr \ |
||||||
|
from sxc_hochschule_vergleichsgruppe\ |
||||||
|
where aktiv=1\ |
||||||
|
order by ordnr\ |
||||||
|
limit 2;\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
]]></sqlvar>\ |
||||||
|
</sqlvars>\ |
||||||
|
\ |
||||||
|
<#assign jahr_param="" />\ |
||||||
|
<#assign jahr_filter="1=1" />\ |
||||||
|
/* <#assign jahr_param="<<Jahr>>" /> */\ |
||||||
|
--Akad. Jahr 2022: WS + SS - Beispiel: WS 22/23 + SS 2023\ |
||||||
|
<#if jahr_param !="">\ |
||||||
|
<#assign jahr_filter="(" />\ |
||||||
|
<#assign jahr_filter=jahr_filter + "(substring('' || sem_rueck_beur_ein from 5 for 1)='2' and val(substring('' || sem_rueck_beur_ein from 1 for 4))="+jahr_param+")" />\ |
||||||
|
<#assign jahr_filter=jahr_filter + " or "/>\ |
||||||
|
<#assign jahr_filter=jahr_filter + "(substring('' || sem_rueck_beur_ein from 5 for 1)='1' and (val(substring('' || sem_rueck_beur_ein from 1 for 4))-1)="+jahr_param+")" />\ |
||||||
|
<#assign jahr_filter=jahr_filter + ")" />\ |
||||||
|
</#if>\ |
||||||
|
\ |
||||||
|
<#assign semester_filter ="1=1\ |
||||||
|
/* and sem_rueck_beur_ein >= <<Seit Semester>> */\ |
||||||
|
/* and sem_rueck_beur_ein <= <<Bis Semester>> */\ |
||||||
|
" />\ |
||||||
|
<#if "<<Semestertyp>>"="1" || "<<Semestertyp>>"="2">\ |
||||||
|
<#assign semester_filter = semester_filter+ " and substring('' || sem_rueck_beur_ein from 5 for 1)='<<Semestertyp>>'" />\ |
||||||
|
</#if>\ |
||||||
|
<#if "<<Nur Endsemester>>"="1">\ |
||||||
|
--nur Endsemester\ |
||||||
|
<#assign semester_filter = semester_filter+ " and 1=1 and sem_rueck_beur_ein = "+endsemester /> \ |
||||||
|
</#if>\ |
||||||
|
\ |
||||||
|
<#assign filter="<<Köpfe oder Fälle ?>>\ |
||||||
|
/* and sem_rueck_beur_ein = <<Semester>> */\ |
||||||
|
/* and stichtag = <<Stichtag>> */\ |
||||||
|
/* and <<Hochschulzugangsberechtigung>> */\ |
||||||
|
/* and <<Hörerstatus>>*/\ |
||||||
|
/* and geschlecht = <<Geschlecht>> */\ |
||||||
|
/* and fach_sem_zahl <= <<bis Fachsemester>> */\ |
||||||
|
/* and substring('' || sem_rueck_beur_ein from 5 for 1)='<<Semestertyp>>' */\ |
||||||
|
/* and ${<<Filter Studierende>>} */\ |
||||||
|
" />\ |
||||||
|
\ |
||||||
|
<#assign filter= filter + " and " + jahr_filter />\ |
||||||
|
\ |
||||||
|
<#assign filter= filter + " and " + semester_filter />\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
<#assign filter = filter + " and 's_' || tid_stg in "+Studiengang.allNeededKeysList /> \ |
||||||
|
/* <#assign filter = filter + " and '' || ca12_staat in "+Staatsangehörigkeit.allNeededKeysList /> --<<Staatsangehörigkeit>> */\ |
||||||
|
/* <#assign filter = filter + " and stg in "+Fächer.allNeededKeysList /> --<<Fächer>> */\ |
||||||
|
/* <#assign filter = filter + " and tid_stg in (select L2.tid from lehr_stg_ab L2 where L2.abschluss in "+Abschluss.allNeededKeysList +")" /> --<<Abschluss>> */\ |
||||||
|
\ |
||||||
|
<#assign mtknr_filter="matrikel_nr::varchar(255)" />\ |
||||||
|
<#if K_SOS_MTKNR_EXT=1>\ |
||||||
|
<#assign mtknr_filter="pseudonym" />\ |
||||||
|
</#if>\ |
||||||
|
<#assign matrikel_nr_sel="" />\ |
||||||
|
/*<#assign matrikel_nr_sel=<<Matrikel-Nr.>> />*/\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
<#if matrikel_nr_sel !="">\ |
||||||
|
<#assign filter=filter+" and "+mtknr_filter+"='"+matrikel_nr_sel+"'" />\ |
||||||
|
</#if>\ |
||||||
|
<#if columns?has_content>\ |
||||||
|
\ |
||||||
|
<#if basetable.is_virtual==1>\ |
||||||
|
\ |
||||||
|
create temp table ${basetable.runtime_tablename} as\ |
||||||
|
select ${rpta_resultset.fieldclause} \ |
||||||
|
from ${rpta_resultset.joinclause} \ |
||||||
|
where 1=1\ |
||||||
|
<#if rpta_resultset.whereclause != ""> \ |
||||||
|
${rpta_resultset.whereclause} </#if>\ |
||||||
|
and ${filter}\ |
||||||
|
;\ |
||||||
|
</#if>\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
<@rpta_interpret_column_layout_ljl nonvirtualTableFilter=filter />\ |
||||||
|
\ |
||||||
|
</#if> --wenn columns?has_content\ |
||||||
|
\ |
||||||
|
<#macro rpta_interpret_column_layout_ljl nonvirtualTableFilter>\ |
||||||
|
<#assign columnLayoutHasTreeColumn=0 />\ |
||||||
|
\ |
||||||
|
<#assign treeColumnSrcFieldname="" />\ |
||||||
|
<#assign treeColumnTargetFieldname="" />\ |
||||||
|
<#assign treeColumnMaskFieldname="" />\ |
||||||
|
select \ |
||||||
|
--zuerst die Basisdaten:\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.coltype=="treeColumn">\ |
||||||
|
<#assign columnLayoutHasTreeColumn=1 />\ |
||||||
|
<#assign treeColumnSrcFieldname=column.srcfieldname />\ |
||||||
|
<#assign treeColumnTargetFieldname=column.targetfieldname />\ |
||||||
|
<#assign treeColumnMaskFieldname=column.colfunction />\ |
||||||
|
null::varchar(255) as ${column.targetfieldname},\ |
||||||
|
<#elseif column.coltype=="physicalColumn">\ |
||||||
|
${column.srcfieldname} as ${column.targetfieldname},\ |
||||||
|
<#elseif column.coltype=="logicalColumn">\ |
||||||
|
${column.colfunction} as ${column.targetfieldname},\ |
||||||
|
<#elseif column.coltype=="preparingColumn">\ |
||||||
|
${column.colfunction} as ${column.targetfieldname},\ |
||||||
|
<#elseif column.coltype=="lookupColumn">\ |
||||||
|
(${column.colfunction}) as ${column.targetfieldname},\ |
||||||
|
<#elseif column.coltype=="computedColumn" || column.coltype=="processingColumn">\ |
||||||
|
null::decimal(19,6) as ${column.targetfieldname},\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
null::char(1) as dummycol\ |
||||||
|
into temp tmp_stud\ |
||||||
|
from ${basetable.runtime_tablename}\ |
||||||
|
where 1=1 \ |
||||||
|
<#if rpta_column_layout.whereclause !="">\ |
||||||
|
and ${rpta_column_layout.whereclause}\ |
||||||
|
</#if>\ |
||||||
|
<#if basetable.is_virtual==0>\ |
||||||
|
and ${nonvirtualTableFilter}\ |
||||||
|
</#if>\ |
||||||
|
;\ |
||||||
|
\ |
||||||
|
--ergebnistabelle:\ |
||||||
|
select \ |
||||||
|
--zuerst die nicht-Aggregate:\ |
||||||
|
<#assign groupby=0 />\ |
||||||
|
-- preparingColumns ausgeschlossen, da sie von processingColumns aggregiert werden\ |
||||||
|
-- computedColumns immer mitnehmen, da später im finalen select verarbeitet\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if (column.is_aggregate==0 && column.coltype!="preparingColumn" && column.coltype!="processingColumn") || column.coltype=="computedColumn"> \ |
||||||
|
<#assign groupby=groupby+1 />\ |
||||||
|
${column.targetfieldname},\ |
||||||
|
<#elseif column.is_aggregate==0 && column.coltype=="processingColumn"> \ |
||||||
|
<#assign groupby=groupby+1 />\ |
||||||
|
<#if column.colfunction?has_content>\ |
||||||
|
${column.colfunction} as ${column.targetfieldname},\ |
||||||
|
<#else>\ |
||||||
|
${column.srcfieldname} as ${column.targetfieldname},\ |
||||||
|
</#if>\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
--dann die Aggregate:\ |
||||||
|
-- preparingColumns ausgeschlossen, da sie von processingColumns aggregiert werden\ |
||||||
|
-- computedColumns ausgeschlossen, da später im finalen select verarbeitet\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.is_aggregate==1 \ |
||||||
|
&& column.colfunction?has_content \ |
||||||
|
&& column.coltype=="processingColumn"> \ |
||||||
|
${column.colfunction} as ${column.targetfieldname},\ |
||||||
|
<#elseif column.is_aggregate==1 \ |
||||||
|
&& (column.coltype == "logicalColumn" || column.coltype == "lookupColumn" || column.coltype == "physicalColumn")> \ |
||||||
|
sum(${column.targetfieldname}) as ${column.targetfieldname},\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
null::char(1) as dummycol\ |
||||||
|
into temp tmp_stud2\ |
||||||
|
from tmp_stud\ |
||||||
|
where 1=1\ |
||||||
|
group by\ |
||||||
|
<#list 1..groupby as i>${i}\ |
||||||
|
<#if i != groupby>\ |
||||||
|
,\ |
||||||
|
</#if>\ |
||||||
|
</#list>\ |
||||||
|
;\ |
||||||
|
--für Prozentwerte alle Aggregate summieren:\ |
||||||
|
select \ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.is_aggregate==1 && column.coltype!="computedColumn" && column.coltype!="processingColumn">\ |
||||||
|
sum(${column.targetfieldname})::float as ${column.targetfieldname},\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
null::char(1) as dummycol\ |
||||||
|
into temp tmp_gesamt\ |
||||||
|
from tmp_stud2\ |
||||||
|
where 1=1\ |
||||||
|
;\ |
||||||
|
<#if columnLayoutHasTreeColumn==1>\ |
||||||
|
<#assign columnLayoutWithTreeColumnAdditionalGrouping=sichtHasAdditionalGrouping(treeColumnTargetFieldname) />\ |
||||||
|
\ |
||||||
|
--Sichtaufbau:\ |
||||||
|
--Zuerst leere Zieltabelle anlegen:\ |
||||||
|
select \ |
||||||
|
<#foreach column in columns>\ |
||||||
|
${column.targetfieldname},\ |
||||||
|
</#foreach>\ |
||||||
|
null::integer as sortnr\ |
||||||
|
into temp tmp_stud3\ |
||||||
|
from tmp_stud\ |
||||||
|
where 1=0;\ |
||||||
|
--maxEbene ermitteln:\ |
||||||
|
<#assign maxEbene=0 />\ |
||||||
|
<#foreach einElement in .vars[treeColumnMaskFieldname].elements>\ |
||||||
|
<#if einElement.level > maxEbene >\ |
||||||
|
<#assign maxEbene=einElement.level />\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
-- ##################################################\ |
||||||
|
-- ######## Start der Schleife ######################\ |
||||||
|
-- ##################################################\ |
||||||
|
<#assign sortnr=0>\ |
||||||
|
--Schleife, über Fächer im ausgewählten Baum, Reihenfolge genau wie im Baum\ |
||||||
|
--diese Kommentare werden schon im 1. Schritt von generateSql gelöscht\ |
||||||
|
--für Entwicklungszwecke kann man tricksen\ |
||||||
|
<@addcomment "SCHLEIFE"/>\ |
||||||
|
\ |
||||||
|
<#foreach einElement in .vars[treeColumnMaskFieldname].elements>\ |
||||||
|
<@addcomment "${einElement.name}"/>\ |
||||||
|
\ |
||||||
|
--zuerst Summenzeile:\ |
||||||
|
<#assign sortnr=sortnr+1>\ |
||||||
|
insert into tmp_stud3(\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
${column.targetfieldname},\ |
||||||
|
</#foreach>\ |
||||||
|
sortnr)\ |
||||||
|
select\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.targetfieldname=treeColumnTargetFieldname>\ |
||||||
|
'${einElement.name}',\ |
||||||
|
<#elseif column.targetfieldname="ebene">\ |
||||||
|
${einElement.level},\ |
||||||
|
<#elseif column.targetfieldname=treeColumnSrcFieldname>\ |
||||||
|
null::char(1),\ |
||||||
|
<#elseif column.is_aggregate==1 \ |
||||||
|
&& column.colfunction?has_content \ |
||||||
|
&& column.coltype=="processingColumn"> \ |
||||||
|
${column.colfunction} as ${column.targetfieldname},\ |
||||||
|
<#elseif column.is_aggregate==1 \ |
||||||
|
&& (column.coltype == "logicalColumn" || column.coltype == "lookupColumn" || column.coltype == "physicalColumn")> \ |
||||||
|
sum(${column.targetfieldname}) as ${column.targetfieldname},\ |
||||||
|
<#else>\ |
||||||
|
null,\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
--(${einElement.level}*10000) + ${sortnr} as sortnr\ |
||||||
|
${sortnr} *10000 as sortnr\ |
||||||
|
from tmp_stud\ |
||||||
|
where ${treeColumnSrcFieldname} in ${einElement.subkeys}\ |
||||||
|
\ |
||||||
|
;\ |
||||||
|
\ |
||||||
|
--Unterste Ebene die Werte:\ |
||||||
|
<#if columnLayoutWithTreeColumnAdditionalGrouping != "" \ |
||||||
|
&& einElement.level == maxEbene >\ |
||||||
|
<#assign sortnr=sortnr+1>\ |
||||||
|
insert into tmp_stud3(\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
${column.targetfieldname},\ |
||||||
|
</#foreach>\ |
||||||
|
sortnr)\ |
||||||
|
select\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.targetfieldname=treeColumnTargetFieldname>\ |
||||||
|
'${einElement.name}',\ |
||||||
|
<#elseif column.targetfieldname="ebene">\ |
||||||
|
<#if einElement.level == maxEbene >\ |
||||||
|
${einElement.level+ 1},\ |
||||||
|
<#else>\ |
||||||
|
${einElement.level},\ |
||||||
|
</#if>\ |
||||||
|
<#elseif column.targetfieldname=treeColumnSrcFieldname>\ |
||||||
|
null::char(1),\ |
||||||
|
<#elseif column.is_aggregate==1 \ |
||||||
|
&& column.colfunction?has_content \ |
||||||
|
&& column.coltype=="processingColumn"> \ |
||||||
|
${column.colfunction} as ${column.targetfieldname},\ |
||||||
|
<#elseif column.is_aggregate==1 \ |
||||||
|
&& (column.coltype == "logicalColumn" || column.coltype == "lookupColumn" || column.coltype == "physicalColumn")> \ |
||||||
|
sum(${column.targetfieldname}) as ${column.targetfieldname},\ |
||||||
|
<#else>\ |
||||||
|
${column.targetfieldname},\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
${sortnr} *10000 --(${einElement.level}*10000) + ${sortnr} as sortnr\ |
||||||
|
from tmp_stud\ |
||||||
|
where s_tid_stg in ${einElement.subkeys}\ |
||||||
|
group by ${columnLayoutWithTreeColumnAdditionalGrouping}\ |
||||||
|
;\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
\ |
||||||
|
drop table tmp_stud2;\ |
||||||
|
select * into tmp_stud2\ |
||||||
|
from tmp_stud3;\ |
||||||
|
drop table tmp_stud3;\ |
||||||
|
--Ende Sicht\ |
||||||
|
</#if>\ |
||||||
|
<#if <<Spaltenlayout>>=="sos_stud_anf_sxc" && vergleichsgruppen?has_content>\ |
||||||
|
--left join lateral\ |
||||||
|
--alter table tmp_stud2 add column summe_ext1 integer;\ |
||||||
|
--alter table tmp_stud2 add column summe_hs1_ext1 integer;\ |
||||||
|
--alter table tmp_stud2 add column summe_ext2 integer;\ |
||||||
|
--alter table tmp_stud2 add column summe_hs1_ext2 integer;\ |
||||||
|
<#assign ordnr=0 />\ |
||||||
|
<#foreach grp in vergleichsgruppen>\ |
||||||
|
<#assign ordnr=ordnr+1 />\ |
||||||
|
update tmp_stud2 set (summe_ext${ordnr},summe_hs1_ext${ordnr})=\ |
||||||
|
(select sum(stud_gesamt), sum(studanf_gesamt)\ |
||||||
|
from sxc_stud_sem_da_geschl_hs_aggr S,sxc_hochschule_vergleich H, sxc_hochschule_vergleichsgruppe G \ |
||||||
|
where G.tid=H.hochschule_vergleichsgruppe_id \ |
||||||
|
and G.uniquename='${grp.uniquename}' \ |
||||||
|
and H.hs_nr=S.hs_nr \ |
||||||
|
and S.semester = sem_rueck_beur_ein);\ |
||||||
|
</#foreach>\ |
||||||
|
\ |
||||||
|
\ |
||||||
|
</#if>\ |
||||||
|
<#assign number_of_visible_colums=0 />\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.is_visible!=0>\ |
||||||
|
<#assign number_of_visible_colums=number_of_visible_colums+1 />\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
<#assign colnr=0 />\ |
||||||
|
select \ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.is_visible!=0>\ |
||||||
|
<#assign colnr=colnr+1 />\ |
||||||
|
<#assign myfieldclause=column.targetfieldname />\ |
||||||
|
<#if column.coltype=="computedColumn">\ |
||||||
|
<#assign myfieldclause=column.colfunction />\ |
||||||
|
</#if>\ |
||||||
|
<@format_code2sql selectclause=myfieldclause format_code_uniquename=column.format_uniquename format_sql=column.format_sql /> as ${column.targetfieldname}\ |
||||||
|
\ |
||||||
|
<#if colnr < number_of_visible_colums>,</#if>\ |
||||||
|
</#if> \ |
||||||
|
</#foreach>\ |
||||||
|
from tmp_stud2\ |
||||||
|
order by \ |
||||||
|
<#if rpta_column_layout.sortclause?has_content>\ |
||||||
|
${rpta_column_layout.sortclause}\ |
||||||
|
<#else>\ |
||||||
|
<#list 1..number_of_visible_colums as i>${i}\ |
||||||
|
<#if i != number_of_visible_colums>\ |
||||||
|
,\ |
||||||
|
</#if>\ |
||||||
|
</#list>\ |
||||||
|
</#if>\ |
||||||
|
;\ |
||||||
|
\ |
||||||
|
<#if basetable.is_virtual==1>\ |
||||||
|
drop table if exists ${basetable.runtime_tablename};\ |
||||||
|
</#if>\ |
||||||
|
drop table if exists tmp_stud;\ |
||||||
|
drop table if exists tmp_stud2;\ |
||||||
|
drop table if exists tmp_gesamt;\ |
||||||
|
\ |
||||||
|
</#macro>^--Freemarker Template\ |
||||||
|
<#assign vergleichsgruppe1_caption="Vergleichsgruppe 1y" />\ |
||||||
|
<#assign vergleichsgruppe2_caption="Vergleichsgruppe 2y" />\ |
||||||
|
<#if vergleichsgruppen?has_content>\ |
||||||
|
<#assign ordnr=0 />\ |
||||||
|
<#foreach grp in vergleichsgruppen>\ |
||||||
|
<#assign ordnr=ordnr+1 />\ |
||||||
|
<#if ordnr==1>\ |
||||||
|
<#assign vergleichsgruppe1_caption=grp.name />\ |
||||||
|
</#if>\ |
||||||
|
<#if ordnr==2>\ |
||||||
|
<#assign vergleichsgruppe2_caption=grp.name />\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
</#if>\ |
||||||
|
XIL List\ |
||||||
|
sizable_columns horizontal_scrolling\ |
||||||
|
drop_and_delete movable_columns \ |
||||||
|
white_space_color=COLOR_WHITE fixed_columns=1\ |
||||||
|
min_heading_height=55\ |
||||||
|
<#foreach column in columns>\ |
||||||
|
<#if column.is_visible!=0>\ |
||||||
|
<#assign caption= column.caption />\ |
||||||
|
<#if caption?index_of("Vergleichsgruppe 1")!=-1 >\ |
||||||
|
<#assign caption=caption?replace("Vergleichsgruppe 1",vergleichsgruppe1_caption) />\ |
||||||
|
\ |
||||||
|
</#if>\ |
||||||
|
<#if caption?index_of("Vergleichsgruppe 2")!=-1 >\ |
||||||
|
<#assign caption=caption?replace("Vergleichsgruppe 2",vergleichsgruppe2_caption) />\ |
||||||
|
</#if>\ |
||||||
|
Column CID=0 heading_text="${caption}" center_heading explanation="${column.description}"\ |
||||||
|
row_selectable heading_platform readonly\ |
||||||
|
width=${column.visible_width} text_size=60\ |
||||||
|
</#if>\ |
||||||
|
</#foreach>\ |
||||||
|
<#if 1=0>\ |
||||||
|
Column CID=0 heading_text="sortnr" center_heading explanation=""\ |
||||||
|
row_selectable heading_platform readonly\ |
||||||
|
width=5 text_size=60\ |
||||||
|
</#if>\ |
||||||
|
@@@^Studienfach^Anzahl bzw. Anteil^Studierende und Anteil weiblicher Studierender als Zeitreihe mit Frauenanteil eigene Hochschule zu anderen Hochschulen^<sximport>select cleanup_stmt from maskeninfo where tid=48000</sximport>^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where tid=<<Spaltenlayout>>;^ |
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue