Browse Source

Umsetzung Vergleichsrückfluss-Modell Beispiel Studierende #5

sxc_0.3_Release
Daniel Quathamer 2 months ago
parent
commit
ca92a977d6
  1. 44
      src-modules/module/sxc/conf/sxc.xml
  2. 367
      src-modules/module/sxc/hilfstabellen/sxc_stud_jahr_zugang_abgang_fuellen.sql
  3. 35
      src-modules/module/sxc/masken/47200_felderinfo.unl
  4. 1
      src-modules/module/sxc/masken/47200_maske_system_bez.unl
  5. 21
      src-modules/module/sxc/masken/47200_masken_felder_bez.unl
  6. 467
      src-modules/module/sxc/masken/47200_maskeninfo.unl
  7. 1
      src-modules/module/sxc/masken/47200_sachgeb_maske_bez.unl
  8. 267
      src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sos_stud_zugang_abgang_fuellen.sql

44
src-modules/module/sxc/conf/sxc.xml

@ -467,7 +467,12 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[SXC]" />
<column name="stud_gesamt" type ="INTEGER" size ="10" default ="" notnull ="false" /> <column name="stud_gesamt" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="studanf_gesamt" type ="INTEGER" size ="10" default ="" notnull ="false" /> <column name="studanf_gesamt" type ="INTEGER" size ="10" default ="" notnull ="false" />
</columns> </columns>
<indexes></indexes> <indexes><index name="ix_sxc_stud_sem_da_geschl_hs_aggr1" unique="false">
<index-column name="hs_nr"/>
</index>
<index name="ix_sxc_stud_sem_da_geschl_hs_aggr2" unique="false">
<index-column name="semester"/>
</index></indexes>
<primaryKeys><rs> <primaryKeys><rs>
</rs></primaryKeys> </rs></primaryKeys>
<foreignKeys><rs> <foreignKeys><rs>
@ -487,7 +492,41 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[SXC]" />
<column name="bestanden_j" type ="INTEGER" size ="10" default ="" notnull ="false" /> <column name="bestanden_j" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="gesamt" type ="INTEGER" size ="10" default ="" notnull ="false" /> <column name="gesamt" type ="INTEGER" size ="10" default ="" notnull ="false" />
</columns> </columns>
<indexes></indexes> <indexes><index name="ix_sxc_lab_jahr_da_geschl_hs_aggr1" unique="false">
<index-column name="hs_nr"/>
</index>
<index name="ix_sxc_lab_jahr_da_geschl_hs_aggr2" unique="false">
<index-column name="jahr"/>
</index></indexes>
<primaryKeys><rs>
</rs></primaryKeys>
<foreignKeys><rs>
</rs></foreignKeys>
<importedKeys><rs>
</rs></importedKeys>
<privileges><rs>
</rs></privileges>
</table>
<table name="sxc_stud_zugang_abgang_aggr" thema="SuperX-Connect" typ="Hilfstabelle"
caption="Studierendenströme pro Jahr (Zugang, Abgang)" releaseUnload="demo">
<columns><column name="hs_nr" type ="CHAR" size ="10" default ="" notnull ="true"/>
<column name="jahr" type ="INTEGER" size ="10" default ="" notnull ="true" />
<column name="anfangsbestand" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="zugang" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="zugang_ersteinschr" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="abgang" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="abgang_hauptpr" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="abgang_ohne_hauptpr" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="hauptpr_summe" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="hauptpr_bleibt" type ="INTEGER" size ="10" default ="" notnull ="false" />
<column name="datenstand" type ="DATE" size ="10" default ="" notnull ="false" />
</columns>
<indexes><index name="ix_sxc_stud_zugang_abgang_aggr1" unique="false">
<index-column name="hs_nr"/>
</index>
<index name="ix_sxc_stud_zugang_abgang_aggr2" unique="false">
<index-column name="jahr"/>
</index></indexes>
<primaryKeys><rs> <primaryKeys><rs>
</rs></primaryKeys> </rs></primaryKeys>
<foreignKeys><rs> <foreignKeys><rs>
@ -497,7 +536,6 @@ rightname="CS_BIA_STANDARDREPORTS_ADMIN[SXC]" />
<privileges><rs> <privileges><rs>
</rs></privileges> </rs></privileges>
</table> </table>
<table name="sxc_itnrw_sfmk_neu" thema="SuperX-Connect" typ="Ladetabelle" <table name="sxc_itnrw_sfmk_neu" thema="SuperX-Connect" typ="Ladetabelle"
releaseUnload="empty"> releaseUnload="empty">
<columns><column name="hochschulnummer" type ="VARCHAR" size ="255" default ="" notnull ="false" /> <columns><column name="hochschulnummer" type ="VARCHAR" size ="255" default ="" notnull ="false" />

367
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;

35
src-modules/module/sxc/masken/47200_felderinfo.unl

@ -0,0 +1,35 @@
47200^Spaltenlayout^3000^350^-1^140^180^1^char^31^1^1^<<SQL>>SELECT uniquename,\
caption\
FROM rpta_column_layout \
where uniquename in ('sos_stud_zugang_abgang')\
order by sortnr, caption\
;^ ^<<SQL>>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^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> 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^<<SQL>> 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^<<SQL>> 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^<<SQL>> 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^<<SQL>> select tid, eintrag from semester order by tid DESC;^ ^<<SQL>> 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^<<SQL>> 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^<<SQL>> 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^<<SQL>> select tid, eintrag from semester order by tid DESC;^hidden^ ^
47211^Stichtag^23^330^-1^130^100^1^sql^30^1^1^<<SQL>> select tid, name from sos_stichtag where stichtagsart='Studierende';^ ^<<SQL>> 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^<<SQL>> 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^<<SQL>> 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^<<SQL>> --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>^ ^<<SQL>>--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^<<SQL>> select apnr, eintrag from koepfe_oder_faelle order by 2^hidden^<<SQL>> select apnr, eintrag from koepfe_oder_faelle where eintrag = 'Köpfe';^
47219^tablestylesheet^1500^0^0^100^100^1^char^255^1^1^<<SQL>> 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^ ^<<SQL>> 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^<<SQL>> 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^^ ^<<SQL>> select '../edit/sxc/sxc_hochschule_vergleichsgruppe_list.jsp' from xdummy;^

1
src-modules/module/sxc/masken/47200_maske_system_bez.unl

@ -0,0 +1 @@
47200^7^

21
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^

467
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\
<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>> */\
\
\
\
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\
;^<sximport>select xil_proplist from maskeninfo where tid=48000</sximport>^Studienfach^Anzahl bzw. Anteil^Studierende (Anfangsbestand, Zugang und Abgang) pro Hochschule und Studienjahr^<sximport>select cleanup_stmt from maskeninfo where tid=48000</sximport>^^2^850^540^^1^<<SQL>>SELECT description FROM rpta_column_layout where uniquename=<<Spaltenlayout>>;^

1
src-modules/module/sxc/masken/47200_sachgeb_maske_bez.unl

@ -0,0 +1 @@
16^47200^

267
src-modules/module/sxc/schluesseltabellen/rpta_column_layout_sos_stud_zugang_abgang_fuellen.sql

@ -0,0 +1,267 @@
--freemarker template
<#include "RPTA-Makros"/>
<sqlvars>
<sqlvar name="sos_stud_astat_exists">
select count(*) from rpta_resultset where uniquename='sos_stud_astat';
</sqlvar>
</sqlvars>
<#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 />
Loading…
Cancel
Save