48000^Tabellenausgabe Studierende (amtlich und intern)^--Freemarker Template\ <#include "SQL_lingua_franca"/>\ <#include "SuperX_general"/>\ --\ --Autor D. Quathamer 2024\ \ \ SELECT distinct name,\ 0::smallint as is_virtual,\ name as runtime_tablename\ from sx_tables\ where name in ('${my_base_rs}')\ and 0=(select count(*) from rpta_resultset R where R.uniquename='${my_base_rs}')\ union\ select R.uniquename,\ 1::smallint as is_virtual,\ 'tmp_' || R.uniquename as runtime_tablename\ from rpta_resultset R where R.uniquename='${my_base_rs}'\ ;\ ]]>\ \ \ >;\ \ ]]>\ >\ /* and C.uniquename in (<>) */\ order by CL.sortnr\ ;\ ]]>\ \ \ <#assign jahr_param="" />\ <#assign jahr_filter="1=1" />\ /* <#assign jahr_param="<>" /> */\ --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 + ")" />\ \ \ <#assign filter="<>\ /* and sem_rueck_beur_ein >= <> */\ /* and sem_rueck_beur_ein <= <> */\ /* and sem_rueck_beur_ein = <> */\ /* and stichtag = <> */\ /* and <> */\ /* and <>*/\ /* and abschluss in (<>) */\ /* and geschlecht = <> */\ /* and fach_sem_zahl <= <> */\ /* and substring('' || sem_rueck_beur_ein from 5 for 1)='<>' */\ " />\ \ <#assign filter= filter + " and " + jahr_filter />\ \ <#assign filter = filter + " and 's_' || tid_stg in "+Studiengang.allNeededKeysList /> \ /* <#assign filter = filter + " and '' || ca12_staat in "+Staatsangehörigkeit.allNeededKeysList /> --<> */\ /* <#assign filter = filter + " and stg in "+Fächer.allNeededKeysList /> --<> */\ \ <#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} \ and ${filter}\ ;\ \ \ \ \ select \ --zuerst die Basisdaten:\ <#foreach column in columns>\ <#if column.coltype="physicalColumn">\ ${column.srcfieldname},\ <#elseif column.coltype="logicalColumn">\ ${column.colfunction} as ${column.targetfieldname},\ <#elseif column.coltype="lookupColumn">\ (${column.colfunction}) as ${column.targetfieldname},\ <#elseif column.coltype="computedColumn">\ null::decimal(19,6) as ${column.targetfieldname},\ \ \ null::char(1) as dummycol\ into temp tmp_stud\ from ${basetable.runtime_tablename}\ <#if rpta_column_layout.whereclause !="">\ where ${rpta_column_layout.whereclause}\ \ ;\ \ \ --ergebnistabelle:\ select \ --zuerst die nicht-Aggregate:\ <#assign groupby=0 />\ <#foreach column in columns>\ <#if column.is_aggregate==0>\ <#assign groupby=groupby+1 />\ ${column.targetfieldname},\ \ \ --dann die Aggregate:\ <#foreach column in columns>\ <#if column.is_aggregate==1 && column.coltype!="computedColumn">\ sum(${column.targetfieldname}) as ${column.targetfieldname},\ \ \ 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>\ ,\ \ \ ;\ --für Prozentwerte alle Aggregate summieren:\ select <#foreach column in columns>\ <#if column.is_aggregate==1 && column.coltype!="computedColumn">\ sum(${column.targetfieldname})::float as ${column.targetfieldname},\ \ \ null::char(1) as dummycol\ into temp tmp_gesamt\ from tmp_stud2\ where 1=1\ ;\ \ <#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 />\ \ \ <#assign colnr=0 />\ select \ <#foreach column in columns>\ <#if column.is_visible!=0>\ <#assign colnr=colnr+1 />\ <#assign format_sql="" />\ <#if column.format_sql?string != "">\ <#assign format_sql=column.format_sql />\ \ \ <#if column.coltype=="computedColumn">\ (${column.colfunction})${format_sql} as ${column.targetfieldname}\ <#else>\ ${column.targetfieldname}${format_sql} as ${column.targetfieldname}\ \ \ <#if colnr < number_of_visible_colums>,\ --wenn sichtbar\ \ from tmp_stud2\ order by <#list 1..number_of_visible_colums as i>${i}\ <#if i != number_of_visible_colums>\ ,\ \ \ ;\ <#if basetable.is_virtual==1>\ drop table if exists ${basetable.runtime_tablename};\ \ \ \ drop table if exists tmp_stud;\ drop table if exists tmp_gesamt;\ \ \ --wenn columns?has_content^--Freemarker Template\ 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>\ Column CID=0 heading_text="${column.caption}" center_heading explanation="${column.description}"\ row_selectable heading_platform readonly\ width=${column.visible_width} text_size=60\ \ \ @@@^Studienfach^Anzahl bzw. Anteil^Datenblatt Studierendenstatistik^drop table if exists tmp_stud2; drop table if exists tmp_stud3;^^2^850^540^^1^<>SELECT description FROM rpta_column_layout where tid=<>;^