Browse Source

Änderungen für logische Spalten direkt in sos_stud_astat_dashboard

master
Marlies Winterstein 4 weeks ago
parent
commit
33d47cacb0
  1. 41
      src-modules/module/viz/schluesseltabellen/studierende_datenblatt_dashboard.sql

41
src-modules/module/viz/schluesseltabellen/studierende_datenblatt_dashboard.sql

@ -1,14 +1,30 @@ @@ -1,14 +1,30 @@
--freemarker template
--alle berechneten Spalten
<sqlvars>
<sqlvar name="sos_stg_aggr_exists">
select sp_table_exists('sos_stg_aggr') from xdummy;
</sqlvar>
<sqlvar name="fact_table_source">
select name
from sx_tables where name ='sos_stg_aggr'
from sx_tables where name ='sos_stg_aggr';
</sqlvar>
<sqlvar name="logical_fields" type="hashsequence">
select 'sos_stud_astat_dashboard' as tablename,
'log_geschlecht_str' as uniquename ,
'Geschlecht' as caption,
'Geschlecht' as description,
'sos_k_geschl.druck' as log_field,
'sos_k_geschl on (sos_k_geschl.apnr=sos_stg_aggr.geschlecht)' as join_field
from xdummy;
</sqlvar>
<sqlvar name="added_tables" type="hashsequence">
<sqlvar name="added_tables" type="hashsequence"><![CDATA[
select 1::smallint as sortnr,
name, trim(name) ||'_' as prefix,
caption,
@ -45,15 +61,17 @@ caption, @@ -45,15 +61,17 @@ caption,
'sos_stg_aggr.hrst=sos_k_hrst.apnr' as joinclause
from sx_tables where name in ('sos_k_hrst')*/
order by 1
]]>
</sqlvar>
<sqlvar name="fact_table_fields">
select '(''tid_stg'',''sem_rueck_beur_ein'',''geschlecht'', ''hzbart'',''hzbart_int'', ''hzbkfz'', ''hzbkfzkz'', ''ca12_staat'', ''fach_sem_zahl'',''hs'',''summe'')'
select '(''tid_stg'',''sem_rueck_beur_ein'',''stichtag'',''geschlecht'', ''hzbart'',''hzbart_int'', ''hzbkfz'', ''hzbkfzkz'',''hrst'', ''ca12_staat'', ''fach_sem_zahl'',''hssem'',''studiengang_nr'', ''fach_nr'',''summe'')'
from xdummy;
</sqlvar>
<sqlvar name="added_table_fields">
select '(''fb'', ''abschluss_grp'', ''abschluss_grp_str'', ''fb_str'',''abschluss_astat_bund'')'
from xdummy;
</sqlvar>
<sqlvar name="fields_target" type="hashsequence"><![CDATA[
<#if fact_table_source?exists>
select tid, table_name,
@ -77,6 +95,7 @@ select tid, table_name, @@ -77,6 +95,7 @@ select tid, table_name,
</sqlvar>
</sqlvars>
<#if sos_stg_aggr_exists==1 && fact_table_source?exists >
<#assign fact_table_target = {"name":"sos_stud_astat_dashboard", "caption":"Studierende (Fachsem., HS-Sem., Studiengang) Dashboard"}
@ -266,6 +285,12 @@ select '${fact_table_target.name}' as table_name, @@ -266,6 +285,12 @@ select '${fact_table_target.name}' as table_name,
and name in ${added_table_fields}
and currentlyused=1;
</#foreach>
--und berechnete Spalten einfügen
<#foreach logical_field in logical_fields>
insert into tmp_fields (table_name,name,caption,description,field_type,field_size,field_not_null,currentlyUsed,is_sum)
select
'${logical_field.tablename}', '${logical_field.uniquename}','${logical_field.caption}', '${logical_field.description}', 'CHAR',30, 1, 1,0 from xdummy;
</#foreach>
CREATE temp TABLE tmp_rpta_resultset
(
@ -290,6 +315,10 @@ insert into tmp_rpta_resultset(caption, @@ -290,6 +315,10 @@ insert into tmp_rpta_resultset(caption,
update tmp_rpta_resultset set fieldclause='
<#foreach logical_field in logical_fields>
${logical_field.log_field} as ${logical_field.uniquename},
</#foreach>
<#foreach field_target in fields_target>
${field_target.table_name}.${field_target.name} as ${field_target.targetname},
</#foreach>
@ -297,7 +326,11 @@ null::varchar as dummy', @@ -297,7 +326,11 @@ null::varchar as dummy',
joinclause='${fact_table_source}
<#foreach added_table in added_tables>
left outer join ${added_table.name} on (${added_table.joinclause})
</#foreach>';
</#foreach>
<#foreach logical_field in logical_fields>
left outer join ${logical_field.join_field}
</#foreach>
';
--whereclause erstmal primitiv
update tmp_rpta_resultset set whereclause = 'and stichtag in (select tid from sos_stichtag where appl_key=''0'') and hrst in (select apnr from sos_k_hrst HRST where HRST.astat in (''1'',''2'')) and kz_rueck_beur_ein in (1,2,3)';

Loading…
Cancel
Save