diff --git a/src-modules/module/sxc/conf/sxc.xml b/src-modules/module/sxc/conf/sxc.xml
index 304ff0b..e306193 100644
--- a/src-modules/module/sxc/conf/sxc.xml
+++ b/src-modules/module/sxc/conf/sxc.xml
@@ -467,7 +467,12 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[SXC]" />
-
+
+
+
+
+
+
@@ -487,7 +492,41 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[SXC]" />
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -497,7 +536,6 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[SXC]" />
-
diff --git a/src-modules/module/sxc/hilfstabellen/sxc_stud_jahr_zugang_abgang_fuellen.sql b/src-modules/module/sxc/hilfstabellen/sxc_stud_jahr_zugang_abgang_fuellen.sql
new file mode 100644
index 0000000..6840cbf
--- /dev/null
+++ b/src-modules/module/sxc/hilfstabellen/sxc_stud_jahr_zugang_abgang_fuellen.sql
@@ -0,0 +1,367 @@
+
+-- =====================================================================
+-- 1) METADATEN NUR EINMAL HOLEN
+-- =====================================================================
+create temp table tmp_meta as
+select
+ (select hs_nr from hochschulinfo) as hs_nr,
+ (select name from hochschulinfo) as hochschulinfo_name,
+ (select datum from systeminfo where tid=7) as datenstand,
+ (select version from db_version where his_system='sxc') as sxc_version,
+ 'SuperX'::varchar(50) as dwh_name
+;
+
+-- =====================================================================
+-- 2) SCHLANKE BASISMENGE
+-- Nur die Spalten, die für diesen Bericht wirklich gebraucht werden.
+-- Das spart I/O, Temp-Speicher und Join-Kosten.
+-- =====================================================================
+create temp table tmp_basis as
+select
+ S.tid_stg,
+ D.stg as dim_studiengang_stg,
+ D.abschluss as dim_studiengang_abschluss,
+ S.matrikel_nr,
+ S.sem_rueck_beur_ein,
+ S.sem_rueck_beur_ein_max,
+ S.kz_rueck_beur_ein,
+ S.summe
+from semester E, sos_stichtag I, sos_stg_aggr S
+left outer join dim_studiengang D
+ on D.tid = S.tid_stg
+where E.tid=S.sem_rueck_beur_ein
+and E.sem_ende < today() --nicht im akt. Semester berechnen
+and studiengang_nr=1
+and fach_nr=1
+and I.tid=S.stichtag
+and I.appl_key='1' --Amtl. Statistik
+;
+
+create index ix_tmp_basis_matr_sem on tmp_basis(matrikel_nr, sem_rueck_beur_ein);
+create index ix_tmp_basis_matr_semmax on tmp_basis(matrikel_nr, sem_rueck_beur_ein_max);
+create index ix_tmp_basis_matr_stg_abs on tmp_basis(matrikel_nr, dim_studiengang_stg, dim_studiengang_abschluss);
+create index ix_tmp_basis_jahr on tmp_basis(sem_rueck_beur_ein);
+
+-- optional, falls in eurer DB sinnvoll:
+-- analyze tmp_basis;
+
+-- =====================================================================
+-- 3) VORBERECHNUNG "FOLGESEMESTER VORHANDEN?"
+-- Statt EXISTS/NOT EXISTS pro Zeile.
+-- Es reicht, vorhandene Kombinationen aus Matrikelnummer + Semester
+-- einmal vorzuhalten.
+--
+-- Für die Prüfung auf das Folgesemester reicht der Bereich bis ein
+-- Semester über dem Berichtsende hinaus.
+-- =====================================================================
+create temp table tmp_sem_exists as
+select distinct
+ matrikel_nr,
+ sem_rueck_beur_ein
+from semester E, sos_stichtag I, sos_stg_aggr S
+where E.tid=S.sem_rueck_beur_ein
+and E.sem_ende < today() --nicht im akt. Semester berechnen
+and I.tid=S.stichtag
+and I.appl_key='1' --Amtl. Statistik
+;
+
+create index ix_tmp_sem_exists on tmp_sem_exists(matrikel_nr, sem_rueck_beur_ein);
+
+-- optional:
+-- analyze tmp_sem_exists;
+
+-- =====================================================================
+-- 4) VORBERECHNUNG "HAUPTPRÜFUNG VORHANDEN?"
+-- Statt EXISTS pro Zeile.
+-- Gleiche Fachlogik wie bisher:
+-- match auf Matrikelnummer + Studiengang + Abschluss.
+-- =====================================================================
+create temp table tmp_hauptpr as
+select distinct
+ L.matrikel_nr,
+ L2.stg,
+ L2.abschluss
+from sos_lab_stg L
+join lehr_stg_ab L2
+ on L2.tid = L.tid_stg
+join sos_stichtag I
+ on I.tid = L.stichtag
+where I.appl_key='2'
+ and L.pstatus='BE'
+ and L.abschnitt=2
+;
+
+create index ix_tmp_hauptpr on tmp_hauptpr(matrikel_nr, stg, abschluss);
+
+-- optional:
+-- analyze tmp_hauptpr;
+
+
+-- =====================================================================
+-- 6) ARBEITSTABELLE tmp_stud
+-- Alle teuren Prüfungen jetzt per Join statt per korrelierter Subquery.
+-- =====================================================================
+create temp table tmp_stud as
+select
+ M.hs_nr,
+ M.hochschulinfo_name,
+ 'Studienjahr'::varchar(255) as studienjahr_label,
+ get_akad_jahr(B.sem_rueck_beur_ein,'P') as jahr,
+ B.sem_rueck_beur_ein,
+ B.matrikel_nr,
+
+ case
+ when substring('' || B.sem_rueck_beur_ein from 5 for 1)='2'
+ and B.kz_rueck_beur_ein=3
+ then B.summe
+ else 0
+ end as anfangsbestand,
+
+ case
+
+ when B.sem_rueck_beur_ein_max <= B.sem_rueck_beur_ein then 'nein'
+ when add_sem(B.sem_rueck_beur_ein,1) = B.sem_rueck_beur_ein_max then 'ja'
+ when S2.matrikel_nr is not null then 'ja'
+ else 'nein'
+ end as status_folgesem,
+
+ case
+ when H.matrikel_nr is not null then 1
+ else 0
+ end as hauptpruefung,
+
+ case
+ when B.kz_rueck_beur_ein in (1,2) then B.summe
+ else 0
+ end as zugang,
+
+ case
+ when B.kz_rueck_beur_ein in (1) then B.summe
+ else 0
+ end as zugang_ersteinschr,
+
+ B.summe as summe,
+
+ M.dwh_name,
+ M.datenstand,
+ M.sxc_version
+from tmp_basis B
+cross join tmp_meta M
+left join tmp_sem_exists S2
+ on S2.matrikel_nr = B.matrikel_nr
+ and S2.sem_rueck_beur_ein = add_sem(B.sem_rueck_beur_ein,1)
+left join tmp_hauptpr H
+ on H.matrikel_nr = B.matrikel_nr
+ and H.stg = B.dim_studiengang_stg
+ and H.abschluss = B.dim_studiengang_abschluss
+;
+
+create index ix_tmp_stud_jahr on tmp_stud(jahr);
+create index ix_tmp_stud_matr_sem on tmp_stud(matrikel_nr, sem_rueck_beur_ein);
+create index ix_tmp_stud_status_hp on tmp_stud(status_folgesem, hauptpruefung);
+
+-- optional:
+-- analyze tmp_stud;
+
+-- =====================================================================
+-- 7) KOPFZÄHLUNG HAUPTPRÜFUNGEN JE SEMESTER
+-- Jede Matrikelnummer kann im selben Semester nur einmal zählen.
+-- In zwei verschiedenen Semestern desselben Studienjahres aber zweimal.
+--
+-- WICHTIG:
+-- Für abgang_hauptpr / abgang_ohne_hauptpr wird hier sauber klassifiziert:
+-- wenn eine Person im Semester irgendwo hauptpruefung=1 hat, zählt sie
+-- als "mit Hauptprüfung" und nicht zusätzlich auch noch als "ohne".
+-- =====================================================================
+create temp table tmp_stud_hauptpr_sem_kopf as
+select
+ hs_nr,
+ hochschulinfo_name,
+ studienjahr_label,
+ jahr,
+ sem_rueck_beur_ein,
+ matrikel_nr,
+ dwh_name,
+ datenstand,
+ sxc_version,
+
+ case
+ when max(case when hauptpruefung=1 then 1 else 0 end) = 1
+ then 1 else 0
+ end as hauptpr_summe_kopf,
+
+ case
+ when max(case when hauptpruefung=1 then 1 else 0 end) = 1
+ and max(case when status_folgesem='ja' then 1 else 0 end) = 1
+ then 1 else 0
+ end as hauptpr_bleibt_kopf,
+
+ case
+ when max(case when status_folgesem='nein' then 1 else 0 end) = 1
+ and max(case when hauptpruefung=1 then 1 else 0 end) = 1
+ then 1 else 0
+ end as abgang_hauptpr_kopf,
+
+ case
+ when max(case when status_folgesem='nein' then 1 else 0 end) = 1
+ and max(case when hauptpruefung=1 then 1 else 0 end) = 0
+ then 1 else 0
+ end as abgang_ohne_hauptpr_kopf
+
+from tmp_stud
+group by
+ hs_nr,
+ hochschulinfo_name,
+ studienjahr_label,
+ jahr,
+ sem_rueck_beur_ein,
+ matrikel_nr,
+ dwh_name,
+ datenstand,
+ sxc_version
+;
+
+create index ix_tmp_stud_hauptpr_sem_kopf_jahr on tmp_stud_hauptpr_sem_kopf(jahr);
+create index ix_tmp_stud_hauptpr_sem_kopf_matr_sem on tmp_stud_hauptpr_sem_kopf(matrikel_nr, sem_rueck_beur_ein);
+
+-- optional:
+-- analyze tmp_stud_hauptpr_sem_kopf;
+
+-- =====================================================================
+-- 8) JAHRESAGGREGATION
+-- Zugang/Abgang/Bestände aus tmp_stud
+-- Hauptprüfungen aus der verdichteten Kopf-Tabelle
+-- =====================================================================
+create temp table tmp_stud2 as
+select
+ basis.hs_nr,
+ basis.hochschulinfo_name,
+ basis.studienjahr_label,
+ basis.jahr,
+ null::integer as endbestand,
+ basis.dwh_name,
+ basis.datenstand,
+ basis.sxc_version,
+ basis.abgang,
+ coalesce(hauptpr.abgang_hauptpr,0) as abgang_hauptpr,
+ coalesce(hauptpr.abgang_ohne_hauptpr,0) as abgang_ohne_hauptpr,
+ coalesce(hauptpr.hauptpr_summe,0) as hauptpr_summe,
+ coalesce(hauptpr.hauptpr_bleibt,0) as hauptpr_bleibt,
+ basis.anfangsbestand,
+ basis.zugang,
+ basis.zugang_ersteinschr,
+ basis.summe,
+ null::char(1) as dummycol
+from
+(
+ select
+ hs_nr,
+ hochschulinfo_name,
+ studienjahr_label,
+ jahr,
+ dwh_name,
+ datenstand,
+ sxc_version,
+ sum(case when status_folgesem='nein' then summe else 0 end) as abgang,
+ sum(anfangsbestand) as anfangsbestand,
+ sum(zugang) as zugang,
+ sum(zugang_ersteinschr) as zugang_ersteinschr,
+ sum(summe) as summe
+ from tmp_stud
+ group by
+ hs_nr,
+ hochschulinfo_name,
+ studienjahr_label,
+ jahr,
+ dwh_name,
+ datenstand,
+ sxc_version
+) basis
+left join
+(
+ select
+ hs_nr,
+ hochschulinfo_name,
+ studienjahr_label,
+ jahr,
+ dwh_name,
+ datenstand,
+ sxc_version,
+ sum(abgang_hauptpr_kopf) as abgang_hauptpr,
+ sum(abgang_ohne_hauptpr_kopf) as abgang_ohne_hauptpr,
+ sum(hauptpr_summe_kopf) as hauptpr_summe,
+ sum(hauptpr_bleibt_kopf) as hauptpr_bleibt
+ from tmp_stud_hauptpr_sem_kopf
+ group by
+ hs_nr,
+ hochschulinfo_name,
+ studienjahr_label,
+ jahr,
+ dwh_name,
+ datenstand,
+ sxc_version
+) hauptpr
+on basis.hs_nr = hauptpr.hs_nr
+and basis.hochschulinfo_name = hauptpr.hochschulinfo_name
+and basis.studienjahr_label = hauptpr.studienjahr_label
+and basis.jahr = hauptpr.jahr
+and basis.dwh_name = hauptpr.dwh_name
+and basis.datenstand = hauptpr.datenstand
+and basis.sxc_version = hauptpr.sxc_version
+;
+
+update tmp_stud2
+set endbestand = anfangsbestand + zugang - abgang
+;
+
+-- =====================================================================
+-- 9) AUSGABE
+-- =====================================================================
+select
+ hs_nr as hs_nr,
+ hochschulinfo_name as hochschulinfo_name,
+ studienjahr_label as studienjahr_label,
+ jahr as jahr,
+ anfangsbestand as anfangsbestand,
+ zugang as zugang,
+ zugang_ersteinschr as zugang_ersteinschr,
+ abgang,
+ abgang_hauptpr,
+ abgang_ohne_hauptpr,
+ hauptpr_summe,
+ hauptpr_bleibt,
+ endbestand,
+ dwh_name as dwh_name,
+ datenstand as datenstand,
+ sxc_version as sxc_version
+from tmp_stud2
+order by
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16
+;
+
+-- =====================================================================
+-- 10) AUFRÄUMEN
+-- =====================================================================
+drop table if exists tmp_stud2;
+drop table if exists tmp_stud_hauptpr_sem_kopf;
+drop table if exists tmp_stud;
+drop table if exists tmp_hauptpr;
+drop table if exists tmp_sem_exists;
+drop table if exists tmp_basis;
+drop table if exists tmp_meta;
+drop table if exists tmp_stud3;
diff --git a/src-modules/module/sxc/masken/47200_felderinfo.unl b/src-modules/module/sxc/masken/47200_felderinfo.unl
new file mode 100644
index 0000000..ae4fcd9
--- /dev/null
+++ b/src-modules/module/sxc/masken/47200_felderinfo.unl
@@ -0,0 +1,35 @@
+47200^Spaltenlayout^3000^350^-1^140^180^1^char^31^1^1^<>SELECT uniquename,\
+ caption\
+FROM rpta_column_layout \
+where uniquename in ('sos_stud_zugang_abgang')\
+order by sortnr, caption\
+ ;^ ^<>SELECT uniquename,\
+ caption\
+FROM rpta_column_layout \
+where uniquename='sos_stud_zugang_abgang';^
+47201^Seit Semester^10^0^0^140^80^1^integer^30^0^1^<> select tid, eintrag from semester order by tid DESC;^ ^<> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
+47202^Fächer^30^0^0^130^200^6^integer^1000^0^12^<> select tid,name,sortnr from sichten where art='Fächer-Sicht' order by 3,2;^ ^ ^
+47203^Abschluss^40^0^0^100^200^3^char^1500^0^12^<> select tid,name,sortnr from sichten where art='SOS-Abschluss-Sicht' order by 3,2;^ ^ ^
+47204^bis Fachsemester^1000^300^-1^200^100^1^integer^30^0^0^^ ^ ^
+47205^Semestertyp^22^350^-1^140^80^1^integer^255^0^1^<> select 1,'nur Sommersemester' from xdummy union select 2,'nur Wintersemester' from xdummy^hidden^ ^
+47206^Hochschulzugangsberechtigung^120^300^-1^200^200^1^sql^30^0^1^hs_zugangsber^ ^ ^
+47207^Bis Semester^20^350^-1^140^80^1^integer^30^0^1^<> select tid, eintrag from semester order by tid DESC;^ ^<> select tid,eintrag from semester where today() between sem_beginn and sem_ende;^
+47208^Staatsangehörigkeit^150^0^0^140^150^10^char^30^0^12^<> select tid,name,sortnr from sichten where art='SOS-Staaten-Sicht' order by 3,2;^ ^ ^
+47209^Studiengang^25^0^0^140^150^50^char^1000^0^12^<> select tid,name,sortnr from sichten where art in ('SOS-Kostenstellen-Sicht', 'SOS-Studiengang-Sicht') order by 3,2;^ ^ ^
+47210^Semester^100^0^0^140^80^1^integer^30^0^1^<> select tid, eintrag from semester order by tid DESC;^hidden^ ^
+47211^Stichtag^23^330^-1^130^100^1^sql^30^1^1^<> select tid, name from sos_stichtag where stichtagsart='Studierende';^ ^<> select tid, name from sos_stichtag where stichtagsart='Studierende' and appl_key='1';^
+47213^Jahr^110^0^0^140^80^1^integer^30^0^13^^ ^ ^
+47214^Filter Studierende^100^0^0^140^150^1^sql^20^0^1^<> SELECT id,caption from sx_repository where aktiv =1 and today() between gueltig_seit and gueltig_bis and art='SOS_STUD_FILTER' order by 2;^ ^ ^
+47215^Nur Endsemester^21^0^0^140^80^1^integer^30^0^1^<> select 1,'ja' from xdummy^hidden^ ^
+47216^Matrikel-Nr.^35^350^-1^140^80^1^char^30^0^13^^ ^ ^
+47217^Grafik^1000^300^-1^170^150^1^char^30^0^1^<> --freemarker template\
+<#if K_VIZ_ZEITR_SEM_ANZ?exists>select uniquename, caption from viz_chart where maskeninfo_id=47140 and chart_active=1 order by 2;\
+<#else>\
+select 0,'Keine Visualisierungen verfügbar' from xdummy;\
+#if>^ ^<>--freemarker template\
+<#if K_VIZ_ZEITR_SEM_ANZ?exists>select uniquename, caption from viz_chart where maskeninfo_id=47140 and chart_active=1 order by 2 limit 1;\
+#if>^
+47218^Köpfe oder Fälle ?^0^0^0^140^150^1^sql^70^0^1^<> select apnr, eintrag from koepfe_oder_faelle order by 2^hidden^<> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Köpfe';^
+47219^tablestylesheet^1500^0^0^100^100^1^char^255^1^1^<> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=47140 order by ord^ ^<> select filename,caption from sx_stylesheets S, sx_mask_style M where S.tid=M.stylesheet_id and M.maskeninfo_id=47140 order by ord limit 1^
+47222^Geschlecht^110^0^0^140^80^1^integer^30^0^1^<> SELECT apnr,druck FROM cif where key = 9003 and apnr between 1 and 4 order by 1;^hidden^ ^
+47223^Vergleichshochschule^100^0^0^140^80^1^char^255^0^18^^ ^<> select '../edit/sxc/sxc_hochschule_vergleichsgruppe_list.jsp' from xdummy;^
diff --git a/src-modules/module/sxc/masken/47200_maske_system_bez.unl b/src-modules/module/sxc/masken/47200_maske_system_bez.unl
new file mode 100644
index 0000000..6770daf
--- /dev/null
+++ b/src-modules/module/sxc/masken/47200_maske_system_bez.unl
@@ -0,0 +1 @@
+47200^7^
diff --git a/src-modules/module/sxc/masken/47200_masken_felder_bez.unl b/src-modules/module/sxc/masken/47200_masken_felder_bez.unl
new file mode 100644
index 0000000..7532d86
--- /dev/null
+++ b/src-modules/module/sxc/masken/47200_masken_felder_bez.unl
@@ -0,0 +1,21 @@
+47200^47200^
+47200^47201^
+47200^47202^
+47200^47203^
+47200^47204^
+47200^47205^
+47200^47206^
+47200^47207^
+47200^47208^
+47200^47209^
+47200^47210^
+47200^47211^
+47200^47213^
+47200^47214^
+47200^47215^
+47200^47216^
+47200^47217^
+47200^47218^
+47200^47219^
+47200^47222^
+47200^47223^
diff --git a/src-modules/module/sxc/masken/47200_maskeninfo.unl b/src-modules/module/sxc/masken/47200_maskeninfo.unl
new file mode 100644
index 0000000..2a20ebb
--- /dev/null
+++ b/src-modules/module/sxc/masken/47200_maskeninfo.unl
@@ -0,0 +1,467 @@
+47200^Studierendenströme Hochschulvergleich^--Freemarker Template\
+<#include "SQL_lingua_franca"/>\
+<#include "SuperX_general"/>\
+--\
+--Autor D. Quathamer 2024\
+\
+>;]]>\
+\
+\
+\
+\
+>;\
+\
+]]>\
+>\
+/* and C.uniquename in (<>) */\
+order by CL.sortnr\
+ ;\
+]]>\
+= <> */\
+/* and tid <= <> */\
+<#if "<>"="1" || "<>"="2">\
+and substring('' || tid from 5 for 1)='<>'\
+#if>\
+;\
+\
+]]>\
+\
+\
+\
+<#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 + ")" />\
+#if>\
+\
+<#assign semester_filter ="1=1\
+/* and sem_rueck_beur_ein >= <> */\
+/* and sem_rueck_beur_ein <= <> */\
+" />\
+<#if "<>"="1" || "<>"="2">\
+<#assign semester_filter = semester_filter+ " and substring('' || sem_rueck_beur_ein from 5 for 1)='<>'" />\
+#if>\
+<#if "<>"="1">\
+--nur Endsemester\
+<#assign semester_filter = semester_filter+ " and 1=1 and sem_rueck_beur_ein = "+endsemester /> \
+#if>\
+\
+<#assign filter="<>\
+/* and sem_rueck_beur_ein = <> */\
+/* and stichtag = <> */\
+/* and <> */\
+/* and <>*/\
+/* and geschlecht = <> */\
+/* and fach_sem_zahl <= <> */\
+/* and substring('' || sem_rueck_beur_ein from 5 for 1)='<>' */\
+/* and ${<>} */\
+" />\
+\
+<#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 /> --<> */\
+/* <#assign filter = filter + " and stg in "+Fächer.allNeededKeysList /> --<> */\
+/* <#assign filter = filter + " and tid_stg in (select L2.tid from lehr_stg_ab L2 where L2.abschluss in "+Abschluss.allNeededKeysList +")" /> --<> */\
+\
+\
+\
+create temp table tmp_sos_stud_astat as\
+select dim_studiengang.tid as dim_studiengang_tid,\
+dim_studiengang.stg as dim_studiengang_stg,\
+dim_studiengang.stg_str as dim_studiengang_stg_str,\
+dim_studiengang.stg_ktxt as dim_studiengang_stg_ktxt,\
+dim_studiengang.stg_ltxt as dim_studiengang_stg_ltxt,\
+dim_studiengang.stg_astat as dim_studiengang_stg_astat,\
+dim_studiengang.stg_astat_str as dim_studiengang_stg_astat_str,\
+dim_studiengang.stg_astgrp as dim_studiengang_stg_astgrp,\
+dim_studiengang.stg_astgrp_str as dim_studiengang_stg_astgrp_str,\
+dim_studiengang.vertfg as dim_studiengang_vertfg,\
+dim_studiengang.vertfg_str as dim_studiengang_vertfg_str,\
+dim_studiengang.schwerpunkt as dim_studiengang_schwerpunkt,\
+dim_studiengang.schwerpunkt_str as dim_studiengang_schwerpunkt_str,\
+dim_studiengang.pversion as dim_studiengang_pversion,\
+dim_studiengang.kz_fach as dim_studiengang_kz_fach,\
+dim_studiengang.kz_fach_str as dim_studiengang_kz_fach_str,\
+dim_studiengang.abschluss as dim_studiengang_abschluss,\
+dim_studiengang.abschluss_str as dim_studiengang_abschluss_str,\
+dim_studiengang.abschluss_astat as dim_studiengang_abschluss_astat,\
+dim_studiengang.abschluss_astat_str as dim_studiengang_abschluss_astat_str,\
+dim_studiengang.abschlussart as dim_studiengang_abschlussart,\
+dim_studiengang.abschlussart_str as dim_studiengang_abschlussart_str,\
+dim_studiengang.abschluss_grp as dim_studiengang_abschluss_grp,\
+dim_studiengang.abschluss_grp_str as dim_studiengang_abschluss_grp_str,\
+dim_studiengang.text as dim_studiengang_text,\
+dim_studiengang.regel as dim_studiengang_regel,\
+dim_studiengang.stort as dim_studiengang_stort,\
+dim_studiengang.stort_str as dim_studiengang_stort_str,\
+dim_studiengang.fb as dim_studiengang_fb,\
+dim_studiengang.fb_str as dim_studiengang_fb_str,\
+dim_studiengang.lehr as dim_studiengang_lehr,\
+dim_studiengang.lehr_str as dim_studiengang_lehr_str,\
+dim_studiengang.stutyp as dim_studiengang_stutyp,\
+dim_studiengang.stutyp_str as dim_studiengang_stutyp_str,\
+dim_studiengang.stg_astat_bund as dim_studiengang_stg_astat_bund,\
+dim_studiengang.stg_astat_bund_str as dim_studiengang_stg_astat_bund_str,\
+dim_studiengang.abschluss_astat_bund as dim_studiengang_abschluss_astat_bund,\
+dim_studiengang.abschluss_astat_bund_str as dim_studiengang_abschluss_astat_bund_str,\
+dim_studiengang.stg_astat_sb as dim_studiengang_stg_astat_sb,\
+dim_studiengang.stg_astat_sb_str as dim_studiengang_stg_astat_sb_str,\
+dim_studiengang.fgrp as dim_studiengang_fgrp,\
+dim_studiengang.fgrp_str as dim_studiengang_fgrp_str,\
+dim_studiengang.sb as dim_studiengang_sb,\
+dim_studiengang.sb_str as dim_studiengang_sb_str,\
+dim_studiengang.abstgvnr as dim_studiengang_abstgvnr,\
+dim_studiengang.pversion_uniquename as dim_studiengang_pversion_uniquename,\
+dim_studiengang.pversion_kurztext as dim_studiengang_pversion_kurztext,\
+dim_studiengang.pversion_drucktext as dim_studiengang_pversion_drucktext,\
+dim_studiengang.unikey as dim_studiengang_unikey,\
+dim_studiengang.ist_lehramt as dim_studiengang_ist_lehramt,\
+--dim_studiengang.stufrm_diff_rsz as dim_studiengang_stufrm_diff_rsz,\
+sos_stg_aggr.tid_stg as tid_stg,\
+sos_stg_aggr.ca12_staat as ca12_staat,\
+sos_stg_aggr.geschlecht as geschlecht,\
+sos_stg_aggr.alter as alter,\
+sos_stg_aggr.hzbart as hzbart,\
+sos_stg_aggr.hmkfzkz as hmkfzkz,\
+sos_stg_aggr.hmkfz as hmkfz,\
+sos_stg_aggr.semkfzkz as semkfzkz,\
+sos_stg_aggr.semkfz as semkfz,\
+sos_stg_aggr.hzbkfzkz as hzbkfzkz,\
+sos_stg_aggr.hzbkfz as hzbkfz,\
+sos_stg_aggr.hrst as hrst,\
+sos_stg_aggr.studiengang_nr as studiengang_nr,\
+sos_stg_aggr.fach_nr as fach_nr,\
+sos_stg_aggr.fach_sem_zahl as fach_sem_zahl,\
+sos_stg_aggr.sem_rueck_beur_ein as sem_rueck_beur_ein,\
+sos_stg_aggr.kz_rueck_beur_ein as kz_rueck_beur_ein,\
+sos_stg_aggr.klinsem as klinsem,\
+sos_stg_aggr.hssem as hssem,\
+sos_stg_aggr.stuart as stuart,\
+sos_stg_aggr.stufrm as stufrm,\
+sos_stg_aggr.stichtag as stichtag,\
+sos_stg_aggr.summe as summe,\
+sos_stg_aggr.hzbart_int as hzbart_int,\
+sos_stg_aggr.matrikel_nr as matrikel_nr,\
+sos_stg_aggr.ch27_grund_beurl as ch27_grund_beurl,\
+sos_stg_aggr.ch62_grund_exmatr as ch62_grund_exmatr,\
+sos_stg_aggr.hzbnote as hzbnote,\
+sos_stg_aggr.pseudonym as pseudonym,\
+sos_stg_aggr.sem_rueck_beur_ein_max as sem_rueck_beur_ein_max,\
+sos_stg_aggr.ruebeudat as ruebeudat,\
+sos_stg_aggr.semgewicht as semgewicht,\
+sos_stg_aggr.d_exmatr as d_exmatr,\
+sos_stg_aggr.second_nationality as second_nationality,\
+sos_stg_aggr.district_astat as district_astat,\
+sos_stg_aggr.country_astat as country_astat,\
+sos_stg_aggr.orgrole_valid_from as orgrole_valid_from,\
+sos_stg_aggr.orgrole_valid_to as orgrole_valid_to,\
+sos_stg_aggr.geb_gezahlt as geb_gezahlt,\
+sos_stg_aggr.aktiv as aktiv,\
+sos_stg_aggr.individual_number_of_semesters as individual_number_of_semesters,\
+sos_stg_aggr.ersthzbkfz as ersthzbkfz,\
+sos_stg_aggr.ersthzbkfzkz as ersthzbkfzkz,\
+sos_stg_aggr.ersthzbart as ersthzbart,\
+sos_stg_aggr.ersthzbjahr as ersthzbjahr,\
+sos_stg_aggr.ersthzbnote as ersthzbnote,\
+sos_stg_aggr.lepsem as lepsem,\
+sos_stg_aggr.stgsemgewicht as stgsemgewicht,\
+sos_stg_aggr.degree_program_id as degree_program_id,\
+sos_stg_aggr.endedat as endedat,\
+sos_stg_aggr.kz_rueck_beur_ein_tsg as kz_rueck_beur_ein_tsg,\
+sos_stg_aggr.endedat_tsg as endedat_tsg,\
+sos_stg_aggr.abmeldegrund as abmeldegrund,\
+sos_stg_aggr.abmeldegrund_tsg as abmeldegrund_tsg,\
+sos_stg_aggr.degree_program_uniquename as degree_program_uniquename,\
+sos_stg_aggr.aktiv_intern as aktiv_intern,\
+sos_stg_aggr.aktiv_intern_p as aktiv_intern_p,\
+sos_k_hrst.apnr as sos_k_hrst_apnr,\
+sos_k_hrst.kurz as sos_k_hrst_kurz,\
+sos_k_hrst.druck as sos_k_hrst_druck,\
+sos_k_hrst.astat as sos_k_hrst_astat,\
+sos_k_hrst.his_hrst as sos_k_hrst_his_hrst,\
+sos_k_stort.apnr as sos_k_stort_apnr,\
+sos_k_stort.kurz as sos_k_stort_kurz,\
+sos_k_stort.druck as sos_k_stort_druck,\
+sos_k_stort.astat as sos_k_stort_astat,\
+sos_k_stuart.apnr as sos_k_stuart_apnr,\
+sos_k_stuart.druck as sos_k_stuart_druck,\
+sos_k_stuart.astat as sos_k_stuart_astat,\
+sos_k_stufrm.apnr as sos_k_stufrm_apnr,\
+sos_k_stufrm.druck as sos_k_stufrm_druck,\
+sos_k_stufrm.astat as sos_k_stufrm_astat,\
+sos_k_stutyp.apnr as sos_k_stutyp_apnr,\
+sos_k_stutyp.druck as sos_k_stutyp_druck,\
+sos_k_stutyp.astat as sos_k_stutyp_astat,\
+null::varchar as dummy \
+from sos_stg_aggr\
+left outer join dim_studiengang on (dim_studiengang.tid=sos_stg_aggr.tid_stg)\
+left outer join sos_k_stort on (dim_studiengang.stort=sos_k_stort.apnr)\
+left outer join sos_k_stutyp on (sos_stg_aggr.stutyp=sos_k_stutyp.apnr)\
+left outer join sos_k_stuart on (sos_stg_aggr.stuart=sos_k_stuart.apnr)\
+left outer join sos_k_stufrm on (sos_stg_aggr.stufrm=sos_k_stufrm.apnr)\
+left outer join sos_k_hrst on (sos_stg_aggr.hrst=sos_k_hrst.apnr) \
+where 1=1\
+and ${filter}\
+;\
+\
+select \
+ --zuerst die Basisdaten:\
+ (select hs_nr from hochschulinfo) as hs_nr,\
+ (select name from hochschulinfo) as hochschulinfo_name,\
+ 'Studienjahr'::varchar(255) as studienjahr_label,\
+ get_akad_jahr(sem_rueck_beur_ein,'P') as jahr,\
+ case when substring('' || sem_rueck_beur_ein from 5 for 1)='2' and kz_rueck_beur_ein=3 then summe else 0 end as anfangsbestand,\
+ (select '' from semester where sem_beginn <= current_date and sem_ende >= current_date and semester.tid= tmp_sos_stud_astat.sem_rueck_beur_ein \
+union select 'nein' where tmp_sos_stud_astat.sem_rueck_beur_ein_max <= tmp_sos_stud_astat.sem_rueck_beur_ein\
+union select 'ja' where add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1) = tmp_sos_stud_astat.sem_rueck_beur_ein_max\
+union select 'ja' from xdummy where exists \
+(select S2.matrikel_nr from sos_stg_aggr S2 where S2.matrikel_nr=tmp_sos_stud_astat.matrikel_nr \
+and S2.sem_rueck_beur_ein=add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1)\
+)\
+union select 'nein' from xdummy where not exists \
+(select S2.matrikel_nr from sos_stg_aggr S2 where S2.matrikel_nr=tmp_sos_stud_astat.matrikel_nr \
+and S2.sem_rueck_beur_ein=add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1)\
+) order by 1 limit 1) as status_folgesem,\
+ (case when exists (select L.matrikel_nr \
+from sos_lab_stg L, lehr_stg_ab L2, sos_stichtag I \
+where L2.tid=L.tid_stg and L.stichtag=I.tid \
+and I.appl_key='2' \
+and L.matrikel_nr=tmp_sos_stud_astat.matrikel_nr \
+and L2.stg=tmp_sos_stud_astat.dim_studiengang_stg \
+and L2.abschluss=tmp_sos_stud_astat.dim_studiengang_abschluss \
+and L.pstatus='BE' \
+and L.abschnitt=2) then 1 else 0 end) as hauptpruefung,\
+ case when kz_rueck_beur_ein in (1,2) then summe else 0 end as zugang,\
+ case when kz_rueck_beur_ein in (1) then summe else 0 end as zugang_ersteinschr,\
+ 0::integer as abgang,\
+ summe as summe,\
+ 0::integer as abgang_hauptpr,\
+ 0::integer as abgang_ohne_hauptpr,\
+ 0::integer as hauptpr_summe,\
+ 0::integer as hauptpr_bleibt,\
+ null::integer as endbestand,\
+ 'SuperX' as dwh_name,\
+ (select datum from systeminfo where tid=7) as datenstand,\
+ (select version from db_version where his_system='sxc') as sxc_version,\
+ null::char(1) as dummycol\
+ into temp tmp_stud\
+ from tmp_sos_stud_astat\
+ where 1=1 \
+ ;\
+-- select * from tmp_stud;\
+ \
+update tmp_stud set abgang=summe where status_folgesem='nein';\
+update tmp_stud set abgang_hauptpr=summe where status_folgesem='nein' and hauptpruefung=1;\
+update tmp_stud set abgang_ohne_hauptpr=summe where status_folgesem='nein' and hauptpruefung=0;\
+update tmp_stud set hauptpr_summe=summe where hauptpruefung=1;\
+update tmp_stud set hauptpr_bleibt=summe where hauptpruefung=1 and status_folgesem='ja';\
+\
+ --ergebnistabelle:\
+ select \
+ --zuerst die nicht-Aggregate:\
+ -- preparingColumns ausgeschlossen, da sie von processingColumns aggregiert werden\
+ -- computedColumns immer mitnehmen, da später im finalen select verarbeitet\
+ hs_nr,\
+ hochschulinfo_name,\
+ studienjahr_label,\
+ jahr,\
+ -- status_folgesem,\
+ -- hauptpruefung,\
+ null::integer as endbestand,\
+ dwh_name,\
+ datenstand,\
+ sxc_version,\
+ --dann die Aggregate:\
+ sum(abgang) as abgang,\
+ sum(abgang_hauptpr) as abgang_hauptpr,\
+ sum(abgang_ohne_hauptpr) as abgang_ohne_hauptpr,\
+ sum(hauptpr_summe) as hauptpr_summe,\
+ sum(hauptpr_bleibt) as hauptpr_bleibt,\
+ sum(anfangsbestand) as anfangsbestand,\
+ sum(zugang) as zugang,\
+ sum(zugang_ersteinschr) as zugang_ersteinschr,\
+ sum(summe) as summe,\
+ null::char(1) as dummycol\
+ into temp tmp_stud2\
+ from tmp_stud\
+ where 1=1\
+ group by\
+ 1,2,3,4,5,6,7,8\
+ ;\
+ update tmp_stud2 set endbestand= anfangsbestand+zugang-abgang;\
+\
+ drop table if exists tmp_sos_stud_astat;\
+ drop table if exists tmp_stud;\
+ \
+ select \
+ hs_nr\
+ as hs_nr\
+\
+ ,\
+ hochschulinfo_name\
+ as hochschulinfo_name\
+\
+ ,\
+ studienjahr_label\
+ as studienjahr_label\
+\
+ ,\
+ jahr\
+ as jahr\
+\
+ ,\
+ anfangsbestand\
+ as anfangsbestand\
+\
+ ,\
+ zugang\
+ as zugang\
+\
+ ,\
+ zugang_ersteinschr\
+ as zugang_ersteinschr\
+\
+ ,\
+ abgang\
+\
+ ,\
+ abgang_hauptpr\
+\
+ ,\
+ abgang_ohne_hauptpr\
+\
+ ,\
+ hauptpr_summe\
+\
+ ,\
+ hauptpr_bleibt\
+\
+ ,\
+ endbestand\
+\
+ ,\
+ dwh_name\
+ as dwh_name\
+\
+ ,\
+ datenstand\
+ as datenstand\
+\
+ ,\
+ sxc_version\
+ as sxc_version\
+\
+ \
+ from tmp_stud2\
+ order by \
+ 1\
+ ,\
+2\
+ ,\
+3\
+ ,\
+4\
+ ,\
+5\
+ ,\
+6\
+ ,\
+7\
+ ,\
+8\
+ ,\
+9\
+ ,\
+10\
+ ,\
+11\
+ ,\
+12\
+ ,\
+13\
+ ,\
+14\
+ ,\
+15\
+ ,\
+16\
+ ;^select xil_proplist from maskeninfo where tid=48000^Studienfach^Anzahl bzw. Anteil^Studierende (Anfangsbestand, Zugang und Abgang) pro Hochschule und Studienjahr^select cleanup_stmt from maskeninfo where tid=48000^^2^850^540^^1^<>SELECT description FROM rpta_column_layout where uniquename=<>;^
diff --git a/src-modules/module/sxc/masken/47200_sachgeb_maske_bez.unl b/src-modules/module/sxc/masken/47200_sachgeb_maske_bez.unl
new file mode 100644
index 0000000..a3a18d9
--- /dev/null
+++ b/src-modules/module/sxc/masken/47200_sachgeb_maske_bez.unl
@@ -0,0 +1 @@
+16^47200^
diff --git a/src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sos_stud_zugang_abgang_fuellen.sql b/src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sos_stud_zugang_abgang_fuellen.sql
new file mode 100644
index 0000000..4a4c505
--- /dev/null
+++ b/src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sos_stud_zugang_abgang_fuellen.sql
@@ -0,0 +1,267 @@
+--freemarker template
+<#include "RPTA-Makros"/>
+
+
+select count(*) from rpta_resultset where uniquename='sos_stud_astat';
+
+
+<#assign rpta_column_layout = {"uniquename":"sos_stud_zugang_abgang",
+"caption":"Studierende (Zugang / Abgang Hochschulvergleich)",
+"rpta_resultset":"sos_stud_astat",
+"whereclause":"",
+"description":"Studierende pro Jahr (Zugang, Abgang)"
+}
+ />
+
+<#assign rpta_columns = [
+{"uniquename":"sos_k_stort_astat",
+"caption_der_spalte":"Hochschulnummer Statistik",
+"caption_in_ergebnistabelle":"Hochschule_ID",
+"srcfieldname":"sos_k_stort_astat",
+"column_type":"physicalColumn",
+"col_function":"",
+"is_visible":"1",
+"visible_size":"10",
+"is_aggregate":"0",
+"description":"Amtliche Standortnummer"
+},
+{"uniquename":"hochschulinfo_name",
+"caption_der_spalte":"Hochschulname",
+"caption_in_ergebnistabelle":"Hochschule_NAME",
+"srcfieldname":"",
+"targetfieldname":"hochschulinfo_name",
+"column_type":"lookupColumn",
+"col_function":"select name from hochschulinfo",
+"is_visible":"1",
+"visible_size":"10",
+"is_aggregate":"0",
+"description":""
+},
+{"uniquename":"studienjahr_label",
+"caption_der_spalte":"Studienjahr Label",
+"caption_in_ergebnistabelle":"Semester",
+"srcfieldname":"",
+"targetfieldname":"studienjahr_label",
+"column_type":"logicalColumn",
+"col_function":"''Studienjahr''::varchar(255)",
+"is_visible":"1",
+"visible_size":"10",
+"is_aggregate":"0",
+"description":""
+}
+,
+{"uniquename":"jahr",
+"caption":"Jahr",
+"srcfieldname":"sem_rueck_beur_ein",
+"targetfieldname":"jahr",
+"column_type":"logicalColumn",
+"col_function":"get_akad_jahr(sem_rueck_beur_ein,''A'')",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":"(WS + darauffolgendes SS)"
+},
+{"uniquename":"anfangsbestand",
+"caption":"Anfangsbestand",
+"srcfieldname":"",
+"targetfieldname":"anfangsbestand",
+"column_type":"logicalColumn",
+"col_function":"case when substring('''' || sem_rueck_beur_ein from 5 for 1)=''2'' and kz_rueck_beur_ein=3 then summe else 0 end",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Studierende im WiSe"
+},
+{"uniquename":"status_folgesem",
+"caption":"Im Folgesemester eingeschrieben",
+"srcfieldname":"status_folgesem",
+"targetfieldname":"status_folgesem",
+"column_type":"lookupColumn",
+"col_function":"select '''' from semester where sem_beginn <= current_date and sem_ende >= current_date and semester.tid= tmp_sos_stud_astat.sem_rueck_beur_ein
+union select ''nein'' where tmp_sos_stud_astat.sem_rueck_beur_ein_max <= tmp_sos_stud_astat.sem_rueck_beur_ein
+union select ''ja'' where add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1) = tmp_sos_stud_astat.sem_rueck_beur_ein_max
+union select ''ja'' from xdummy where exists
+(select S2.matrikel_nr from sos_stg_aggr S2 where S2.matrikel_nr=tmp_sos_stud_astat.matrikel_nr
+and S2.sem_rueck_beur_ein=add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1)
+)
+union select ''nein'' from xdummy where not exists
+(select S2.matrikel_nr from sos_stg_aggr S2 where S2.matrikel_nr=tmp_sos_stud_astat.matrikel_nr
+and S2.sem_rueck_beur_ein=add_sem(tmp_sos_stud_astat.sem_rueck_beur_ein,1)
+) order by 1 limit 1",
+"is_visible":"0",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":"Ist im Folgesem. eingeschrieben"
+},
+{"uniquename":"hauptpruefung",
+"caption":"Hauptprüfung",
+"srcfieldname":"",
+"targetfieldname":"hauptpruefung",
+"column_type":"lookupColumn",
+"col_function":"case when exists (select L.matrikel_nr
+from sos_lab_stg L, lehr_stg_ab L2, sos_stichtag I
+where L2.tid=L.tid_stg and L.stichtag=I.tid
+and I.appl_key=''2''
+and L.matrikel_nr=tmp_sos_stud_astat.matrikel_nr
+and L2.stg=tmp_sos_stud_astat.dim_studiengang_stg
+and L2.abschluss=tmp_sos_stud_astat.dim_studiengang_abschluss
+and L.pstatus=''BE''
+and L.abschnitt=2) then 1 else 0 end",
+"is_visible":"0",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":"Hauptprüfung bestanden"
+},
+{"uniquename":"zugang",
+"caption":"Zugang",
+"srcfieldname":"",
+"targetfieldname":"zugang",
+"column_type":"logicalColumn",
+"col_function":"case when kz_rueck_beur_ein in (1,2) then summe else 0 end",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Studierende (Erst- und Neueinschreiber) im WiSe und SoSe"
+},
+{"uniquename":"zugang_ersteinschr",
+"caption":"Zugang_Ersteinschreibung",
+"srcfieldname":"",
+"targetfieldname":"zugang_ersteinschr",
+"column_type":"logicalColumn",
+"col_function":"case when kz_rueck_beur_ein in (1) then summe else 0 end",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Studierende (Ersteinschreiber) im WiSe und SoSe"
+},
+{"uniquename":"abgang",
+"caption":"Abgang",
+"srcfieldname":"",
+"targetfieldname":"abgang",
+"column_type":"computedColumn",
+"col_function":"case when status_folgesem=''nein'' then summe else 0 end",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Exmatrikuliert"
+},
+{"uniquename":"summe",
+"caption":"Summe",
+"srcfieldname":"summe",
+"targetfieldname":"",
+"column_type":"physicalColumn",
+"col_function":"",
+"is_visible":"0",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":""
+},
+{"uniquename":"abgang_hauptpr",
+"caption":"Abgang_mit_Hauptpruefung",
+"srcfieldname":"",
+"targetfieldname":"abgang_hauptpr",
+"column_type":"computedColumn",
+"col_function":"case when status_folgesem=''nein'' and hauptpruefung=1 then summe else 0 end",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Hauptprüfung, im Folgesemester nicht eingeschrieben"
+},
+{"uniquename":"abgang_ohne_hauptpr",
+"caption":"Abgang_ohne_Hauptpruefung",
+"srcfieldname":"",
+"targetfieldname":"abgang_ohne_hauptpr",
+"column_type":"computedColumn",
+"col_function":"case when status_folgesem=''nein'' and hauptpruefung=0 then summe else 0 end",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Keine Hauptprüfung, im Folgesemester nicht eingeschrieben"
+},
+{"uniquename":"hauptpr_summe",
+"caption":"Hauptpruefung_gesamt",
+"srcfieldname":"",
+"targetfieldname":"hauptpr_summe",
+"column_type":"computedColumn",
+"col_function":"case when hauptpruefung=1 then summe else 0 end",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Hauptprüfung"
+},
+{"uniquename":"hauptpr_bleibt",
+"caption":"Hauptpruefung_bleibt",
+"srcfieldname":"",
+"targetfieldname":"hauptpr_bleibt",
+"column_type":"computedColumn",
+"col_function":"hauptpr_summe - abgang_hauptpr",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Hauptprüfung, im Folgesem.- eingeschrieben"
+},
+
+{"uniquename":"endbestand",
+"caption":"Endbestand",
+"srcfieldname":"",
+"targetfieldname":"endbestand",
+"column_type":"computedColumn",
+"col_function":"anfangsbestand + zugang - abgang",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"1",
+"description":"Endbestand (Anfangsbestand + Zugang - Abgang)"
+},
+{"uniquename":"dwh_name",
+"caption":"Quellsystem",
+"srcfieldname":"",
+"targetfieldname":"dwh_name",
+"column_type":"logicalColumn",
+"col_function":"''SuperX''",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":""
+},
+{"uniquename":"datenstand",
+"caption":"Datenstand",
+"srcfieldname":"",
+"targetfieldname":"datenstand",
+"column_type":"lookupColumn",
+"col_function":"select datum from systeminfo where tid=7",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":""
+},
+{"uniquename":"sxc_version",
+"caption":"Version-Export",
+"srcfieldname":"",
+"targetfieldname":"sxc_version",
+"column_type":"lookupColumn",
+"col_function":"select version from db_version where his_system=''sxc''",
+"is_visible":"1",
+"format_code":"",
+"visible_size":"5",
+"is_aggregate":"0",
+"description":""
+}
+]
+ />
+
+<@rpta_column_layout_fuellen />