@ -1,14 +1,30 @@
- - freemarker template
- - freemarker template
- - alle berechneten Spalten
< sqlvars >
< sqlvars >
< sqlvar name = " sos_stg_aggr_exists " >
< sqlvar name = " sos_stg_aggr_exists " >
select sp_table_exists ( ' sos_stg_aggr ' ) from xdummy ;
select sp_table_exists ( ' sos_stg_aggr ' ) from xdummy ;
< / sqlvar >
< / sqlvar >
< sqlvar name = " fact_table_source " >
< sqlvar name = " fact_table_source " >
select name
select name
from sx_tables where name = ' sos_stg_aggr '
from sx_tables where name = ' sos_stg_aggr ' ;
< / sqlvar >
< / sqlvar >
< sqlvar name = " added_tables " type = " hashsequence " >
< 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 " > < ! [ CDATA [
select 1 : : smallint as sortnr ,
select 1 : : smallint as sortnr ,
name , trim ( name ) | | ' _ ' as prefix ,
name , trim ( name ) | | ' _ ' as prefix ,
caption ,
caption ,
@ -45,15 +61,17 @@ caption,
' sos_stg_aggr.hrst=sos_k_hrst.apnr ' as joinclause
' sos_stg_aggr.hrst=sos_k_hrst.apnr ' as joinclause
from sx_tables where name in ( ' sos_k_hrst ' ) * /
from sx_tables where name in ( ' sos_k_hrst ' ) * /
order by 1
order by 1
] ] >
< / sqlvar >
< / sqlvar >
< sqlvar name = " fact_table_fields " >
< 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 ;
from xdummy ;
< / sqlvar >
< / sqlvar >
< sqlvar name = " added_table_fields " >
< sqlvar name = " added_table_fields " >
select ' ( '' fb '' , '' abschluss_grp '' , '' abschluss_grp_str '' , '' fb_str '' , '' abschluss_astat_bund '' ) '
select ' ( '' fb '' , '' abschluss_grp '' , '' abschluss_grp_str '' , '' fb_str '' , '' abschluss_astat_bund '' ) '
from xdummy ;
from xdummy ;
< / sqlvar >
< / sqlvar >
< sqlvar name = " fields_target " type = " hashsequence " > < ! [ CDATA [
< sqlvar name = " fields_target " type = " hashsequence " > < ! [ CDATA [
< #if fact_table_source?exists>
< #if fact_table_source?exists>
select tid , table_name ,
select tid , table_name ,
@ -77,6 +95,7 @@ select tid, table_name,
< / sqlvar >
< / sqlvar >
< / sqlvars >
< / sqlvars >
< #if sos_stg_aggr_exists==1 && fact_table_source?exists >
< #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"}
< #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,
and name in $ { added_table_fields }
and name in $ { added_table_fields }
and currentlyused = 1 ;
and currentlyused = 1 ;
< / #foreach>
< / #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
CREATE temp TABLE tmp_rpta_resultset
(
(
@ -290,6 +315,10 @@ insert into tmp_rpta_resultset(caption,
update tmp_rpta_resultset set fieldclause = '
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>
< #foreach field_target in fields_target>
$ { field_target . table_name } . $ { field_target . name } as $ { field_target . targetname } ,
$ { field_target . table_name } . $ { field_target . name } as $ { field_target . targetname } ,
< / #foreach>
< / #foreach>
@ -297,7 +326,11 @@ null::varchar as dummy',
joinclause = ' ${fact_table_source}
joinclause = ' ${fact_table_source}
< #foreach added_table in added_tables>
< #foreach added_table in added_tables>
left outer join $ { added_table . name } on ( $ { added_table . joinclause } )
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
- - 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) ' ;
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) ' ;