2 changed files with 92 additions and 0 deletions
@ -0,0 +1,91 @@
@@ -0,0 +1,91 @@
|
||||
--Freemarker Template |
||||
<#include "SQL_lingua_franca"/> |
||||
<#include "SuperX_general"/> |
||||
-- |
||||
--Autor D. Quathamer 2024 |
||||
<sqlvars> |
||||
<sqlvar name="basetables" type="hashsequence"><![CDATA[ |
||||
SELECT distinct T.name, |
||||
R.is_virtual, |
||||
T.name as runtime_tablename, |
||||
R.caption, |
||||
R.uniquename, |
||||
R.fieldclause, |
||||
R.joinclause, |
||||
R.whereclause, |
||||
R.systeminfo_id |
||||
from sx_tables T, rpta_resultset R |
||||
where T.name=R.uniquename |
||||
and R.is_virtual=0 |
||||
|
||||
]]> |
||||
</sqlvar> |
||||
<sqlvar name="basetable_columns" type="hashsequence"><![CDATA[ |
||||
SELECT distinct T.name as table_name, |
||||
F.name, |
||||
F.is_sum |
||||
from sx_tables T, rpta_resultset R , sx_fields F |
||||
where T.name=R.uniquename |
||||
and R.is_virtual=0 |
||||
and F.table_name=T.name |
||||
order by F.is_sum,2,3 |
||||
|
||||
|
||||
]]> |
||||
</sqlvar> |
||||
</sqlvars> |
||||
|
||||
<#if basetables?has_content> |
||||
<#foreach basetable in basetables> |
||||
|
||||
<#if basetable.is_virtual==0> |
||||
|
||||
drop table if exists ${basetable.runtime_tablename}; |
||||
|
||||
create temp table tmp_${basetable.runtime_tablename} as |
||||
select ${basetable.fieldclause} , |
||||
today() as creation_date |
||||
from ${basetable.joinclause} |
||||
where 1=1 |
||||
<#if basetable.whereclause != ""> |
||||
${basetable.whereclause} </#if> |
||||
; |
||||
--Summierung: |
||||
<#if basetable_columns?has_content> |
||||
<#assign groupby=0 /> |
||||
create table ${basetable.runtime_tablename} as |
||||
select |
||||
<#foreach basetable_column in basetable_columns> |
||||
|
||||
<#if basetable_column.is_sum=0> |
||||
<#assign groupby=groupby+1 /> |
||||
${basetable_column.name}, |
||||
<#else> |
||||
sum(${basetable_column.name})::float as ${basetable_column.name}, |
||||
</#if> |
||||
|
||||
</#foreach> |
||||
creation_date |
||||
from tmp_${basetable.runtime_tablename} |
||||
group by |
||||
<#list 1..groupby as i>${i}, |
||||
</#list> |
||||
creation_date |
||||
; |
||||
|
||||
|
||||
drop table tmp_${basetable.runtime_tablename}; |
||||
|
||||
</#if> --Ende Summierung |
||||
|
||||
--TODO: indizes |
||||
create index ix_geschlecht_dashboard_mw on ${basetable.runtime_tablename}(geschlecht); |
||||
create index ix_tid_stg_dashboard_mw on ${basetable.runtime_tablename}(tid_stg); |
||||
create index ix_sem_rueck_beur_ein_dashboard_mw on ${basetable.runtime_tablename}(sem_rueck_beur_ein); |
||||
|
||||
</#if> --Ende is_virtual=0 |
||||
</#foreach> |
||||
|
||||
|
||||
|
||||
</#if> |
Loading…
Reference in new issue