47110^Stammdaten NRW^--Freemarker Template\ <#include "SQL_lingua_franca"/>\ <#include "SuperX_general"/>\ \ -- ################\ -- # Erläuterung: #\ -- ################\ -- bezugsart:\ -- Q = Quartal\ -- S = Semester\ -- J = Jahr\ -- A = Akademisches Jahr BW\ -- B = Beginner SA (Studeinanfäger)\ -- P = Prüfungen SA (Absolventen) (war früher U)\ \ \ --######################################\ \ --start ergtabelle \ \ >"?replace("'","")?replace("*","%")+"%"/>\ \ select trim(K.id) as id,trim(R.gruppe_1) as gruppe_1,\ trim(R.gruppe_2) as gruppe_2,\ trim(K.name) as name,\ trim(K.quelltabelle) as quelltabelle,\ trim(K.quellfeld) as quellfeld,\ K.bedingung as bedingung,\ trim(K.stichtagsart) as stichtagsart,\ trim(K.bezugsart) as bezugsart,\ trim(K.zeitfeld) as zeitfeld,\ R.ebene,\ R.ord_nr,\ K.einheit,\ K.beschreibung\ FROM kenn_katalog K, kenn_katalog_rpt R\ where K.id=R.katalog_id\ and R.report_id=<>\ /* and R.gruppe_1 like ('${kennznr}') and <>!='muss sein, da der Feld optional ist' */\ /* and K.stichtagsart in (select druck from kenn_stichtagsart where aktiv='1' and apnr in (<>)) */\ --Sortierung nach ord_nr wichtig wg. Querabhängigkeiten\ order by 12;\ ]]>\ \ \ \ select min(tid) from kenn_semester\ where 1=1\ /* and get_akad_jahr(tid,'A') >= <> */\ /* and get_akad_jahr(tid,'A') <= <> */;\ \ \ select max(tid) from kenn_semester\ where 1=1\ /* and get_akad_jahr(tid,'A') >= <> */\ /* and get_akad_jahr(tid,'A') <= <> */;\ \ \ select min(ord) from aggregierung\ where kategorie='KENN-Jahr'\ /* and ord >= <> */\ /* and ord <= <> */;\ \ \ select max(ord) from aggregierung\ where kategorie='KENN-Jahr'\ /* and ord >= <> */\ /* and ord <= <> */;\ \ \ select min(tid) from kenn_semester\ where 1=1\ /* and akad_jahr_anf >= <> */\ /* and akad_jahr_anf <= <> */;\ \ \ select max(tid) from kenn_semester\ where 1=1\ /* and akad_jahr_anf >= <> */\ /* and akad_jahr_anf <= <> */;\ \ \ select min(tid) from kenn_semester\ where 1=1\ /* and akad_jahr_absolv >= <> */\ /* and akad_jahr_absolv <= <> */;\ \ \ select max(tid) from kenn_semester\ where 1=1\ /* and akad_jahr_absolv >= <> */\ /* and akad_jahr_absolv <= <> */;\ \ \ \ <#assign lfb_feldinhalt="''" />\ /* <#assign lfb_feldinhalt= .vars["Externes Produkt"].allNeededKeys /> --<> */\ \ --URL-Parameter für LFB-Detailmaske Sachsen:\ <#assign seit_jahr_param="" />\ <#if "<>" != "">\ <#assign seit_jahr_param="&Start-Jahr=<>" />\ \ <#assign bis_jahr_param="" />\ <#if "<>" != "">\ <#assign bis_jahr_param="&End-Jahr=<>" />\ \ <#assign hochschule_param="" />\ <#if "<>" != "">\ /* <#assign hs="<>" /> */\ <#assign hochschule_param="&Hochschule="+ hs?replace("'", "") />\ \ \ create temp table tmp_kennz\ (\ tid integer,\ hs_nr integer,\ katalog_id CHAR(100),\ hochschule_str nchar(255),\ stichtagsart nchar(255),\ beschreibung char(255),\ zeitraum_int integer,\ zeitraum_str char(255), \ bezugsart char(1),\ ebene smallint,\ ord_nr smallint,\ gruppe_1 char(40),\ gruppe_2 char(40),\ betrag decimal(14,2),\ einheit char(255), \ erlaeuterung varchar(255),\ nextmask varchar(250),\ nexttable varchar(250),\ jahr integer,\ semester integer\ ) <@informixnolog/>;\ create temp table tmp_kennz3\ (tid integer,\ hs_nr integer,\ katalog_id CHAR(100),\ hochschule_str nchar(255),\ stichtagsart nchar(255),\ beschreibung char(255),\ zeitraum_int integer,\ zeitraum_str char(255), \ bezugsart char(1),\ ebene smallint,\ gruppe_1 char(40),\ gruppe_2 char(40),\ betrag decimal(14,2),\ einheit char(255),\ erlaeuterung varchar(255)\ ) <@informixnolog/>;\ \ create temp table tmp_betrag1\ (hs_nr integer,\ zeitraum_int integer,\ betrag decimal(14,2)\ ) <@informixnolog/>;\ \ create temp table tmp_betrag2\ (hs_nr integer,\ zeitraum_int integer,\ betrag decimal(14,2)\ ) <@informixnolog/>;\ \ \ \ \ <#macro bedingung zeitfeld bezugsart stichtagsart>\ <#if zeitfeld='null::integer' >\ (1=1)\ <#else>\ <#switch bezugsart>\ <#case "A">\ --Akad. Studienjahr ist etwas komplizierter\ --Def.: WS + darauf folgendes SS des im Zähler betrachteten Studienjahres\ <#if zeitfeld='jahr' >\ (\ 1=1 \ /*and jahr in\ (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='J'\ and K.stichtagsart='${stichtagsart}' and K.exportieren=<> ) */\ /* and jahr in\ (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='J'\ and K.stichtagsart='${stichtagsart}' and K.berechnen=<> ) */\ )\ <#else>\ --Semester\ (\ 1=1\ /* and ${zeitfeld} in\ (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='S'\ and K.stichtagsart='${stichtagsart}' and K.exportieren=<>) */\ /* and ${zeitfeld} in\ (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='S'\ and K.stichtagsart='${stichtagsart}' and K.berechnen=<> )*/\ \ )\ \ <#break>\ \ <#default>\ 1=1\ /* and ${zeitfeld} in (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='${bezugsart}'\ and K.stichtagsart='${stichtagsart}'\ and K.exportieren=<>) */\ /* and ${zeitfeld} in (SELECT K.bezugszeit FROM kenn_stichtag K where K.bezugsart='${bezugsart}'\ and K.stichtagsart='${stichtagsart}'\ and K.berechnen=<>) */\ \ \ \ \ \ \ \ --Erste Schleife für alle zu berechnenden Werte, wo quelltabelle gefüllt ist\ <#if kenn_katalog?has_content >\ <#foreach row_kennzahl in kenn_katalog>\ <#if row_kennzahl.id != "dummy" && row_kennzahl.id != "dummy1">\ --Variablen erheben\ <#assign quelltabelle= row_kennzahl.quelltabelle />\ <#assign quellfeld= row_kennzahl.quellfeld />\ <#assign filter= row_kennzahl.bedingung />\ <#assign stichtagsart= row_kennzahl.stichtagsart />\ <#assign bezugsart= row_kennzahl.bezugsart />\ <#assign zeitfeld= row_kennzahl.zeitfeld />\ <#assign ebene= row_kennzahl.ebene />\ <#assign ord_nr= row_kennzahl.ord_nr />\ <#assign gruppe_1= row_kennzahl.gruppe_1 />\ <#assign gruppe_2= row_kennzahl.gruppe_2 />\ <#assign einheit= row_kennzahl.einheit />\ <#assign beschreibung= row_kennzahl.beschreibung />\ \ \ <#assign zeit_bedingung="1=1" />\ \ <#switch bezugsart>\ <#case "Q">\ <#if "<>" != "" && "<>" != "">\ <#assign zeit_bedingung= "jahr between <> and <>" />\ \ <#if "<>" = "" && "<>" != "">\ <#assign zeit_bedingung= "jahr <= <>" />\ \ <#if "<>" != "" && "<>" = "">\ <#assign zeit_bedingung= "jahr >= <>" />\ \ <#break>\ <#case "S">\ <#if "<>" != "" && "<>" != "">\ <#assign zeit_bedingung= zeitfeld + " between <> and <>" />\ \ <#if "<>" = "" && "<>" != "">\ <#assign zeit_bedingung= zeitfeld + " <= <>" />\ \ <#if "<>" != "" && "<>" = "">\ <#assign zeit_bedingung= zeitfeld + " >= <>" />\ \ <#if "<>" != "" && "<>" != "">\ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') between <> and <>" />\ \ <#if "<>" = "" && "<>" != "">\ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') <= <>" />\ \ <#if "<>" != "" && "<>" = "">\ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') >= <>" />\ \ <#break>\ <#case "J">\ <#if "<>" != "" && "<>" != "">\ <#assign zeit_bedingung= zeitfeld + " between <> and <>" />\ \ <#if "<>" = "" && "<>" != "">\ <#assign zeit_bedingung= zeitfeld + " <= <>" />\ \ <#if "<>" != "" && "<>" = "">\ <#assign zeit_bedingung= zeitfeld + " >= <>" />\ \ <#break>\ <#case "A">\ <#if zeitfeld="sem">\ <#if sem_akad_bw_von?trim != "">\ <#assign zeit_bedingung= zeit_bedingung+ " and " + zeitfeld + ">="+ sem_akad_bw_von />\ \ <#if sem_akad_bw_bis?trim != "">\ <#assign zeit_bedingung= zeit_bedingung+ " and "+ zeitfeld + "<="+ sem_akad_bw_bis />\ \ \ <#if zeitfeld?index_of("jahr") > -1 >\ <#if jahr_akad_bw_von?trim != "">\ <#assign zeit_bedingung= zeit_bedingung+ " and " + zeitfeld + ">="+ jahr_akad_bw_von />\ \ <#if jahr_akad_bw_bis?trim != "">\ <#assign zeit_bedingung= zeit_bedingung+ " and "+ zeitfeld + "<="+ jahr_akad_bw_bis />\ \ \ <#break>\ <#case "B">\ <#if sem_akad_sa_anf_von?trim != "">\ <#assign zeit_bedingung= zeit_bedingung+ " and " + zeitfeld + ">="+ sem_akad_sa_anf_von />\ \ <#if sem_akad_sa_anf_bis?trim != "">\ <#assign zeit_bedingung= zeit_bedingung+ " and "+ zeitfeld + "<="+ sem_akad_sa_anf_bis />\ \ <#break>\ <#case "P">\ <#if sem_akad_sa_absolv_von?trim != "">\ <#assign zeit_bedingung= zeit_bedingung+ " and "+ zeitfeld + " >="+ sem_akad_sa_absolv_von />\ \ <#if sem_akad_sa_absolv_bis?trim != "">\ <#assign zeit_bedingung= zeit_bedingung+ " and "+ zeitfeld + "<="+ sem_akad_sa_absolv_bis />\ \ \ <#break>\ <#default>\ <#assign zeit_bedingung= "1=1" />\ \ \ --Zuerst die Felder, die aus KENN-Tabellen generiert werden\ --Achtung: die folgenden Tabellennamen müssen auch in Maske 18000 eingetragen werden\ <#assign lfb_colname="" />\ <#if quelltabelle != "" >\ <#if quelltabelle=="kenn_sos_stg" || quelltabelle=="kenn_sos_lab" \ || quelltabelle=="kenn_sos_stg" || quelltabelle=="kenn_flaeche"\ || quelltabelle=="kenn_pbv_aggr" || quelltabelle=="kenn_konto_aggr"\ || quelltabelle=="kenn_anlagen_aggr" || quelltabelle=="kenn_stupl">\ <#assign lfb_colname="extkotr" />\ \ <#if quelltabelle== "kenn_busa_aggr">\ <#assign lfb_colname="projnr" />\ \ <#if quelltabelle== "kenn_vtbu_aggr">\ <#assign lfb_colname="ziel_projnr" />\ \ <#if quelltabelle== "kenn_zahl_wert">\ <#if row_kennzahl.id == "FORSCH_HABILITATION_KOEPFE">\ <#assign lfb_colname="ch110_institut" />\ <#else>\ <#if row_kennzahl.id == "LEHR_UNBER_ANG" || row_kennzahl.id == "LEHRANG_LEHRAUFTRAEGE" >\ <#assign lfb_colname="(select min(substring(SG.key_ext from 1 for 10)) from kenn_inst_to_ext SG where SG.hs_nr=kenn_zahl_wert.hs_nr and SG.instnr=kenn_zahl_wert.ch110_institut)" />\ <#else>\ <#assign lfb_colname="(select min(SG.k_extkotr) from kenn_stug SG where SG.hs_nr=kenn_zahl_wert.hs_nr and SG.stug_key=kenn_zahl_wert.stugkey)" />\ \ \ \ <#if quelltabelle== "kenn_su_imp_stud" || quelltabelle== "kenn_auslastung" || quelltabelle== "kenn_proj_gege">\ <#assign lfb_colname="k_extkotr" />\ \ \ insert into tmp_kennz(\ hs_nr ,\ katalog_id,\ stichtagsart ,\ beschreibung ,\ zeitraum_int,\ bezugsart,\ ebene,\ ord_nr,\ gruppe_1,\ gruppe_2,\ betrag,\ einheit,\ erlaeuterung)\ \ select hs_nr,\ '${row_kennzahl.id}'::char(100),\ '${stichtagsart}'::nchar(255),\ '${row_kennzahl.name}' <#if bezugsart = "A" || bezugsart = "P" || bezugsart = "B" && zeitfeld?index_of("sem") > -1 && quelltabelle != ""> || nvl(' (' || (select trim(min(kurz)) from kenn_semester where tid=${quelltabelle}.${zeitfeld}) || ')','') ,\ <#if (bezugsart = "A" || bezugsart = "P" || bezugsart = "B") && zeitfeld?index_of("sem") > -1>\ --akad. Jahr automatisch ermitteln\ get_akad_jahr(${zeitfeld},'${bezugsart}'),\ --val(substring('' || ${zeitfeld} from 1 for 4)),\ <#else>\ ${zeitfeld},\ \ '${bezugsart}'::char(1),\ ${ebene}::smallint,\ ${ord_nr}::smallint,\ '${gruppe_1}'::char(40),\ '${gruppe_2}'::char(40),\ ${quellfeld},\ '${einheit}'::varchar(255),\ '${beschreibung}'::varchar(255)\ from xdummy left outer join ${quelltabelle} on ( \ <@bedingung zeitfeld="${zeitfeld}" bezugsart="${bezugsart}" stichtagsart="${stichtagsart}"/>\ ${filter}\ and ${zeit_bedingung}\ and LPAD(hs_nr::TEXT, 4, '0') in <@printkeys .vars["Hochschule"].allNeededKeys /> \ \ <#if lfb_feldinhalt != "''" && lfb_colname != "" >\ and ${lfb_colname} in ${lfb_feldinhalt}\ \ )\ --nicht doppelt einfügen\ where 0=(select count(*) from tmp_kennz K where K.katalog_id= '${row_kennzahl.id}' and (K.gruppe_1='${gruppe_1}' or K.gruppe_1 is null or trim(K.gruppe_1)=''))\ group by 1,2,3,4,5,6;\ \ --wenn nicht "dummy"\ \ \ <@selectintotmp select="*" source="tmp_kennz" target="tmp_kennz_basis">\ <@informixnolog/>;\ \ \ --nun die berechneten Kennzahlen\ <#list 1..5 as i>\ <#if kenn_katalog?has_content >\ <#foreach row_kennzahl in kenn_katalog>\ <#if row_kennzahl.id != "dummy">\ --Variablen erheben\ <#assign quelltabelle= row_kennzahl.quelltabelle />\ <#assign quellfeld= row_kennzahl.quellfeld />\ <#assign filter= row_kennzahl.bedingung />\ <#assign stichtagsart= row_kennzahl.stichtagsart />\ <#assign bezugsart= row_kennzahl.bezugsart />\ <#assign zeitfeld= row_kennzahl.zeitfeld />\ <#assign ebene= row_kennzahl.ebene />\ <#assign ord_nr= row_kennzahl.ord_nr />\ <#assign gruppe_1= row_kennzahl.gruppe_1 />\ <#assign gruppe_2= row_kennzahl.gruppe_2 />\ <#assign einheit= row_kennzahl.einheit />\ <#assign beschreibung= row_kennzahl.beschreibung />\ \ \ \ <#switch bezugsart>\ <#case "Q">\ <#if "<>" != "" && "<>" != "">\ <#assign zeit_bedingung= "jahr between <> and <>" />\ \ <#if "<>" = "" && "<>" != "">\ <#assign zeit_bedingung= "jahr <= <>" />\ \ <#if "<>" != "" && "<>" = "">\ <#assign zeit_bedingung= "jahr >= <>" />\ \ <#break>\ <#case "S">\ <#if "<>" != "" && "<>" != "">\ <#assign zeit_bedingung= zeitfeld + " between <> and <>" />\ \ <#if "<>" = "" && "<>" != "">\ <#assign zeit_bedingung= zeitfeld + " <= <>" />\ \ <#if "<>" != "" && "<>" = "">\ <#assign zeit_bedingung= zeitfeld + " >= <>" />\ \ <#if "<>" != "" && "<>" != "">\ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') between <> and <>" />\ \ <#if "<>" = "" && "<>" != "">\ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') <= <>" />\ \ <#if "<>" != "" && "<>" = "">\ <#assign zeit_bedingung= "get_akad_jahr("+zeitfeld+",'B') >= <>" />\ \ <#break>\ <#case "J">\ <#if "<>" != "" && "<>" != "">\ <#assign zeit_bedingung= zeitfeld + " between <> and <>" />\ \ <#if "<>" = "" && "<>" != "">\ <#assign zeit_bedingung= zeitfeld + " <= <>" />\ \ <#if "<>" != "" && "<>" = "">\ <#assign zeit_bedingung= zeitfeld + " >= <>" />\ \ <#break>\ <#case "A">\ <#assign zeit_bedingung= zeitfeld +" between "+sem_akad_bw_von+" and "+sem_akad_bw_bis />\ <#break>\ <#case "B">\ <#assign zeit_bedingung= zeitfeld +" between "+sem_akad_sa_anf_von+" and "+sem_akad_sa_anf_bis />\ <#break>\ <#case "P">\ <#assign zeit_bedingung= zeitfeld +" between "+sem_akad_sa_absolv_von+" and "+sem_akad_sa_absolv_bis />\ <#break>\ <#default>\ <#assign zeit_bedingung= "1=1" />\ \ \ \ --Jetzt die berechneten Felder:\ <#if quelltabelle = "" >\ \ --Bei berechneten Feldern steht in Quelltabelle nichts, dafür die Formel in Feldname\ <#assign rsnum=1 />\ \ <#if quellfeld?index_of("/") != -1 || quellfeld?index_of("*") != -1>\ <#if quellfeld?index_of("/") != -1>\ <#assign operator="/" />\ \ <#if quellfeld?index_of("*") != -1>\ <#assign operator="*" />\ \ <#list quellfeld?split(operator) as rs>\ <#if rsnum = 1>\ <#assign betrag1= rs />\ \ <#if rsnum = 2>\ <#assign betrag2= rs />\ \ <#assign rsnum= rsnum+1 />\ \ insert into tmp_betrag1(\ hs_nr ,\ zeitraum_int,\ betrag\ )\ select hs_nr,\ zeitraum_int,\ --sicherstellen dass keien Duplikate reinkommen, wenn eine Kennzahl mehrmals benutzt wird:\ min(betrag)\ from tmp_kennz \ where katalog_id='${betrag1}'\ group by 1,2;\ <#if betrag2?starts_with("2") || betrag2?starts_with("4") >\ --wenn betrag2 keine Variable, sondern eine Zahl ist (z.B. für AVG /2)\ --dann wird nur die 2 übernommen.\ insert into tmp_betrag2(\ hs_nr ,\ zeitraum_int,\ betrag\ )\ select hs_nr,\ zeitraum_int,\ ${betrag2}\ from tmp_kennz \ where katalog_id='${betrag1}'; \ <#else>\ insert into tmp_betrag2(\ hs_nr ,\ zeitraum_int,\ betrag )\ select hs_nr,\ zeitraum_int,\ min(betrag)\ from tmp_kennz \ where katalog_id='${betrag2}'\ group by 1,2; \ \ insert into tmp_kennz3(\ hs_nr ,\ stichtagsart ,\ beschreibung ,\ zeitraum_int,\ bezugsart,\ ebene,\ gruppe_1,\ gruppe_2,\ betrag,\ einheit,\ erlaeuterung)\ select Z.hs_nr,\ '${stichtagsart}'::nchar(255),\ '${row_kennzahl.name}'::char(255) ,\ Z.zeitraum_int,\ '${bezugsart}'::char(1),\ ${ebene},\ '${gruppe_1}',\ '${gruppe_2}',\ Z.betrag ${operator} N.betrag,\ '{einheit}',\ '{erlaeuterung}'\ from tmp_betrag1 Z, tmp_betrag2 N \ where 1=1\ <#if filter?trim = "">\ and (Z.zeitraum_int=N.zeitraum_int\ or (Z.zeitraum_int is null and N.zeitraum_int is null))\ <#else>\ --Wenn eine Kennzahl aus zwei nicht zusammenpassenden Zeiträumen gebildet wird,\ --(z.B. WS/HHJ) muss im Katalog das Feld bedingung gefüllt sein\ ${filter}\ \ <#if operator="/">\ --keine Division durch 0\ and N.betrag != 0\ \ and Z.hs_nr=N.hs_nr;\ \ <#if quellfeld?index_of("+") != -1 >\ --Summe\ <#assign operator="+" />\ insert into tmp_kennz3(\ hs_nr ,\ stichtagsart ,\ beschreibung ,\ zeitraum_int,\ bezugsart,\ ebene,\ gruppe_1,\ gruppe_2,\ betrag,\ einheit,\ erlaeuterung) \ select hs_nr,\ '${stichtagsart}'::nchar(255),\ '${row_kennzahl.name}'::char(255) ,\ zeitraum_int,\ '${bezugsart}'::char(1),\ ${ebene}::integer,\ '${gruppe_1}'::char(40),\ '${gruppe_2}'::char(40),\ sum(betrag),\ '${einheit}',\ '${beschreibung}'\ from xdummy left outer join tmp_kennz on \ ( katalog_id in (\ <#list quellfeld?split(operator) as rs>\ '${rs?trim}',\ \ '')\ and hs_nr is not null --nur wenn überhaupt ein Wert drin ist\ -- bei Akademischen Jahr soll keine Addition statt finden, wenn eins der beiden Semester keine Zahlen enthält. Das Ergebnis aus der Summe wäre irreführend.\ <#if row_kennzahl.bezugsart = 'A'>\ <#list quellfeld?split(operator) as rs>\ and 0 < (select count(*) from tmp_kennz_basis BS where BS.katalog_id = '${rs}' and BS.zeitraum_int=tmp_kennz.zeitraum_int and BS.betrag is not null)\ \ \ ${row_kennzahl.bedingung} )\ group by 1,2,3,4,5,6,7; \ \ \ insert into tmp_kennz(\ hs_nr ,\ katalog_id,\ stichtagsart ,\ beschreibung ,\ zeitraum_int,\ bezugsart,\ ebene,\ ord_nr,\ gruppe_1,\ gruppe_2,\ betrag,\ einheit,\ erlaeuterung)\ select\ hs_nr ,\ '${row_kennzahl.id}'::char(100),\ '${stichtagsart}'::nchar(255),\ '${row_kennzahl.name}'::char(255) ,\ zeitraum_int,\ bezugsart,\ ${ebene}::smallint,\ ${ord_nr}::smallint,\ '${gruppe_1}'::char(40),\ '${gruppe_2}'::char(40),\ betrag,\ '${einheit}' ,\ '${beschreibung}' \ <#if i=5>\ --nur im letzten Durchgang ein left outer join, um sicherzugehen dass eine Zeile\ --angezeigt wird, auch wenn der Wert fehlt.\ from xdummy left outer join tmp_kennz3 on (1=1)\ <#else>\ from tmp_kennz3\ \ --nicht doppelt einfügen, wg. 5er Schleife:\ where 0=(select count(*) from tmp_kennz K\ where K.katalog_id= '${row_kennzahl.id}'\ and (K.gruppe_1='${gruppe_1}' or K.gruppe_1 is null or trim(K.gruppe_1)='')\ );\ \ delete from tmp_betrag1;\ delete from tmp_betrag2;\ delete from tmp_kennz3;\ \ --wenn nicht dummy\ \ \ \ \ -- Wenn eine Kennzahl ausgewählt wird, sollen alle Ebenen angezeigt werden: Ebenen Filter wird ignoriert.\ <#if "<>" = "">\ /* delete from tmp_kennz where ebene > <>; */\ \ \ /* delete from tmp_kennz where substring(gruppe_1 from 1 for 2) != <>; */\ \ update tmp_kennz set hochschule_str=(select name from sxc_hochschulen where hs_nr =LPAD(tmp_kennz.hs_nr::TEXT, 4, '0'));\ update tmp_kennz set zeitraum_str=(select min(druck) from kenn_semester where tid=tmp_kennz.zeitraum_int)\ where bezugsart in ('S','4');\ update tmp_kennz set zeitraum_str=(select name FROM aggregierung where kategorie='COB-Jahr' \ and ord=tmp_kennz.zeitraum_int)\ where bezugsart in ('J','A');\ update tmp_kennz set zeitraum_str=(select min(druck) from kenn_quartale where apnr=tmp_kennz.zeitraum_int)\ where bezugsart='Q';\ update tmp_kennz set zeitraum_str=zeitraum_int where zeitraum_str is null;\ \ update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=5' \ where stichtagsart='Kostenrechnung' \ and katalog_id in ('KOSTEN_ERLOESE_Q');\ \ update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=906' \ where stichtagsart='Kostenrechnung' \ and katalog_id in ('KOSTEN_PERSONAL_Q');\ update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=6' \ where stichtagsart='Kostenrechnung' \ and katalog_id in ('KOSTEN_SACH_Q');\ update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=7' \ where stichtagsart='Kostenrechnung' \ and katalog_id in ('KOSTEN_WEITERE_Q');\ update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=66' \ where stichtagsart='Kostenrechnung' \ and katalog_id in ('KOSTEN_ABSCHR_Q');\ update tmp_kennz set nextmask='18580&Hochschule=' || hs_nr || '&Quartal=' || substring('' || zeitraum_int from 5 for 1) || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) || '&Kostenarten=902' \ where stichtagsart='Kostenrechnung' \ and katalog_id in ('KOSTEN_KALK_MIETE_Q');\ \ --update tmp_kennz set nextmask='18600&Hochschule=' || hs_nr || '&cachingcontrol=clearMask' where stichtagsart='Kostenrechnung' and katalog_id in ('KOSTEN_LEHRE_Q','KOSTEN_FORSCHUNG_Q','KOSTEN_DIENST_Q');\ update tmp_kennz set nextmask='18600&Hochschule=' || hs_nr || '&Zeitraum=' || zeitraum_int || '&Haushaltsjahr=' || substring('' || zeitraum_int from 1 for 4) where stichtagsart='Kostenrechnung' and katalog_id in ('KOSTEN_LEHRE_SEK_Q');\ \ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&bis Hochschulsemester=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_1HS_KOEPFE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&bis Fachsemester=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_1FS_KOEPFE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&bis Fachsemester=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_1FS_FAELLE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=H' || '&bis Fachsemester=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_1FS_HF_FAELLE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=N' || '&bis Fachsemester=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_1FS_NF_FAELLE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_KOEPFE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_FAELLE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=H' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_HF_FAELLE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=N' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_NF_FAELLE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&in der RSZ=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_RSZ_KOEPFE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&in der RSZ=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_RSZ_FAELLE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&in der RSZ=1' || '&Fachkennz.=H' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_RSZ_HF_FAELLE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&in der RSZ=1' || '&Fachkennz.=N' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_RSZ_NF_FAELLE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=2' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_W_KOEPFE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=1' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_M_KOEPFE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_D_KOEPFE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Hochschulzugangsber.=6' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_BI_KOEPFE');\ update tmp_kennz set nextmask='18620&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Hochschulzugangsber.=7' where stichtagsart='Studierendenstatistik' and katalog_id in ('STUD_BA_KOEPFE');\ \ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_KOEPFE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_FAELLE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=H' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_HF_FAELLE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Fachkennz.=N' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_NF_FAELLE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=2' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_W_KOEPFE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=1' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_M_KOEPFE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=2' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_W_FAELLE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=1' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_M_FAELLE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=2' || '&Fachkennz.=H' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_W_HF_KOEPFE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Geschlecht=1' || '&Fachkennz.=H' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_M_HF_KOEPFE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=2' || '&Fachkennz.=H' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_W_HF_FAELLE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=1' || '&Fachkennz.=H' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_M_HF_FAELLE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=2' || '&Fachkennz.=N' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_W_NF_FAELLE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=f' || '&Geschlecht=1' || '&Fachkennz.=N' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_M_NF_FAELLE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Staatsangeh%F6rigkeit="000"' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_D_KOEPFE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Hochschulzugangsber.=6' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_BI_KOEPFE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Hochschulzugangsber.=7' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_BA_KOEPFE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&K%F6pfe%20oder%20F%E4lle%20?=k' || '&Staatsangeh%F6rigkeit=Alle%20ohne%20Deutschland' where stichtagsart='Prüfungsstatistik' and katalog_id in ('ABSOLV_A_KOEPFE');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&Promotion=1' where stichtagsart='Prüfungsstatistik' and katalog_id in ('PROMOTIONEN');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&Promotion=1' || '&Geschlecht=2' where stichtagsart='Prüfungsstatistik' and katalog_id in ('PROMOTIONEN_W');\ update tmp_kennz set nextmask='18640&Hochschule=' || hs_nr || '&Semester=' || zeitraum_int || '&Promotion=1' || '&Geschlecht=1' where stichtagsart='Prüfungsstatistik' and katalog_id in ('PROMOTIONEN_M');\ \ \ <@selectintotmp select="hs_nr,hochschule_str,stichtagsart,beschreibung,erlaeuterung,zeitraum_int,\ zeitraum_str,ebene, ord_nr,gruppe_1,gruppe_2, round(betrag,2) as betrag,einheit,nextmask,nexttable,'' as stichtagsart2" source="tmp_kennz" target="tmp_kennz4">\ order by gruppe_1,zeitraum_int,gruppe_2,ord_nr\ <@informixnolog/>;\ \ \ /* <#if <> = "0">\ update tmp_kennz4 set erlaeuterung = '';\ */\ \ <@selectintotmp select="hs_nr,hochschule_str,stichtagsart,stichtagsart2,beschreibung,erlaeuterung,zeitraum_int,\ zeitraum_str,ebene, ord_nr,gruppe_1,gruppe_2, round(betrag,2) as betrag,einheit,nextmask,nexttable" source="tmp_kennz4" target="tmp_kennz2">\ order by ord_nr,zeitraum_int,gruppe_1,gruppe_2\ <@informixnolog/>;\ \ drop table tmp_kennz;\ drop table tmp_kennz3;\ drop table tmp_kennz4;\ drop table tmp_kennz_basis;\ drop table tmp_betrag1;\ drop table tmp_betrag2;\ \ select ebene,hochschule_str,stichtagsart,\ --stichtagsart2,\ trim(string_not_null(gruppe_1)) || trim(string_not_null(gruppe_2)) || ' ' || beschreibung,\ --erlaeuterung,\ zeitraum_str,\ round(betrag,2),\ --einheit,\ nextmask,nexttable from tmp_kennz2\ ;^XIL List\ drop_and_delete movable_columns sizable_columns horizontal_scrolling\ white_space_color=COLOR_WHITE fixed_columns=1\ min_heading_height=35\ Column CID=0 heading_text="Ebene" center_heading explanation="@@@kenn_ebene_stud@@@" \ row_selectable col_selectable heading_platform readonly\ width=10 text_size=10\ Column CID=0 heading_text="Hochschule" center_heading explanation="@@@kenn_hochschule@@@" \ row_selectable col_selectable heading_platform readonly\ width=15 text_size=10\ Column CID=1 heading_text="Statistische\\nKennzahl" center_heading explanation="@@@kenn_stat_kennzahl@@@"\ row_selectable col_selectable heading_platform readonly\ width=15 text_size=100\ Column CID=2 heading_text="Beschreibung" center_heading explanation="@@@kenn_beschreibung@@@"\ row_selectable col_selectable heading_platform readonly\ width=50\ Column CID=3 heading_text="Zeitraum" center_heading explanation="@@@kenn_zeitraum@@@"\ row_selectable col_selectable heading_platform readonly\ width=20\ Column CID=3 heading_text="Wert" center_heading explanation="@@@kenn_wert@@@"\ row_selectable col_selectable heading_platform readonly\ width=20\ Column CID=3 heading_text="Details\\nMaske" center_heading explanation="Details für diese Kennzahl"\ row_selectable col_selectable heading_platform readonly\ width=15\ Column CID=3 heading_text="Details\\nTabelle" center_heading explanation="Details für diese Kennzahl"\ row_selectable col_selectable heading_platform readonly\ width=15\ @@@^ ^ ^Gesamtüberblick der stat. Kennzahlen nach Hochschule und Art der Kennzahl.^drop table tmp_kennz2;^^1^600^400^^1^<> select 'Achtung: Beim Kennzahlen-Bericht wird das Maskenfeld Stat. Kennzahl ignoriert, ggf. würden die Kennzahlen sonst nicht vollständig berechnet.' from xdummy where <>='KENN_BW' and (1=0 /* or <> != ''*/);^