Browse Source

nrw-Schnitt jetzt ueber join statt update; Auslagerung SQL-Skripte #53

sxc_0.3_Release
Imo John 7 months ago
parent
commit
263d8f334e
  1. 14
      src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz.kjb
  2. 18
      src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_injection.ktr
  3. 4
      src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_template.ktr
  4. 71
      src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/insert_sxc_zahl_wert_nrw_schnitt.sql
  5. 39
      src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/update_sxc_zahl_wert.sql

14
src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz.kjb

@ -13,7 +13,7 @@
<parameters> <parameters>
<parameter> <parameter>
<name>PATH_TO_UPLOADFILE</name> <name>PATH_TO_UPLOADFILE</name>
<default_value>&#x2f;home&#x2f;superx&#x2f;Downloads&#x2f;stamm all - Auszug UDE-3.csv</default_value> <default_value>&#x2f;home&#x2f;superx&#x2f;Downloads&#x2f;stamm_all_ude.csv</default_value>
<description/> <description/>
</parameter> </parameter>
</parameters> </parameters>
@ -377,10 +377,10 @@
<name>update tmp_sxc_zahl_wert</name> <name>update tmp_sxc_zahl_wert</name>
<description/> <description/>
<type>SQL</type> <type>SQL</type>
<sql>update tmp_sxc_zahl_wert set&#xa; hs_nr&#x3d;M.target_value&#xa;from &#xa; sxc_mapping_bestand M&#xa;where&#xa; M.sxc_bestand_id&#x3d;1&#xa; and M.object_type&#x3d;&#x27;Hochschule&#x27;&#xa; and M.object_value&#x3d;tmp_sxc_zahl_wert.hs_nr_str&#xa;&#x3b;&#xa;&#xa;&#xa;update tmp_sxc_zahl_wert&#xa;set wert &#x3d; &#xa; case &#xa; when wert_str &#x21;&#x3d; &#x27;--&#x27; &#xa; and wert_str is not null &#xa; and wert_str &#x3c;&#x3e; &#x27;&#x27; &#xa; then cast&#x28;replace&#x28;wert_str, &#x27;,&#x27; , &#x27;.&#x27;&#x29; as decimal&#x28;30,20&#x29;&#x29; &#x2a; 100&#xa; else null&#xa; end&#xa;where kenn_zahl like &#x27;&#x25;_proz&#x25;&#x27;&#xa;&#x3b;&#xa;&#xa;update tmp_sxc_zahl_wert&#xa;set wert &#x3d; &#xa; case &#xa; when wert_str &#x21;&#x3d; &#x27;--&#x27; &#xa; and wert_str is not null &#xa; and wert_str &#x3c;&#x3e; &#x27;&#x27; &#xa; then cast&#x28;replace&#x28;wert_str, &#x27;,&#x27; , &#x27;.&#x27;&#x29; as decimal&#x28;30,20&#x29;&#x29; &#xa; else null&#xa; end&#xa;where wert is null&#xa;&#x3b;&#xa;&#xa;update tmp_sxc_zahl_wert set sxc_bestand_id&#x3d;1&#x3b; -- MKW NRW Hochschulkennzahlen&#xa;update tmp_sxc_zahl_wert set bland&#x3d;5&#x3b; -- NRW&#xa;&#xa;&#xa;</sql> <sql/>
<useVariableSubstitution>F</useVariableSubstitution> <useVariableSubstitution>F</useVariableSubstitution>
<sqlfromfile>F</sqlfromfile> <sqlfromfile>T</sqlfromfile>
<sqlfilename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;update_tmp_sxc_zahl_wert.sql</sqlfilename> <sqlfilename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;update_sxc_zahl_wert.sql</sqlfilename>
<sendOneStatement>F</sendOneStatement> <sendOneStatement>F</sendOneStatement>
<connection>eduetl</connection> <connection>eduetl</connection>
<parallel>N</parallel> <parallel>N</parallel>
@ -393,10 +393,10 @@
<name>insert into sxc_zahl_wert &#x2b; NRW-Durchschnitt</name> <name>insert into sxc_zahl_wert &#x2b; NRW-Durchschnitt</name>
<description/> <description/>
<type>SQL</type> <type>SQL</type>
<sql>delete from sxc_zahl_wert&#xa;where &#xa; sxc_bestand_id&#x3d;1&#xa; and jahr in &#x28;select jahr from tmp_sxc_zahl_wert&#x29;&#xa; and hs_nr in &#x28;select hs_nr from tmp_sxc_zahl_wert&#x29;&#xa;&#x3b;&#xa;&#xa;INSERT INTO sxc_zahl_wert&#xa;&#x28;&#xa; hs_nr,&#xa; kenn_zahl,&#xa; jahr,&#xa; sem,&#xa; bland,&#xa; ch110_institut,&#xa; sxc_bestand_id,&#xa; wert,&#xa; generic_dim1,&#xa; generic_dim2&#xa;&#x29;&#xa;select&#xa; hs_nr,&#xa; kenn_zahl,&#xa; jahr,&#xa; sem,&#xa; bland,&#xa; ch110_institut,&#xa; sxc_bestand_id,&#xa; wert,&#xa; generic_dim1,&#xa; generic_dim2&#xa;from tmp_sxc_zahl_wert&#xa;where&#xa; hs_nr is not null&#xa;order by&#xa; sxc_bestand_id,1,2,3,4&#xa;&#x3b;&#xa;&#xa;&#xa;drop table if exists tmp_sxc_zahl_wert&#x3b;&#xa;drop table if exists tmp_nrw_durchschnitt&#x3b;&#xa;&#xa;CREATE TABLE tmp_nrw_durchschnitt&#xa;&#x28; &#xa; jahr integer,&#xa; kenn_zahl char&#x28;100&#x29;,&#xa; lfb char&#x28;100&#x29;,&#xa; nrw_durchschnitt numeric&#xa;&#x29;&#x3b;&#xa;&#xa;insert into tmp_nrw_durchschnitt&#xa;select&#xa; jahr, &#xa; kenn_zahl,&#xa; generic_dim1 as lfb,&#xa; case when kenn_zahl like &#x27;&#x25;_proz&#x25;&#x27; then sum&#x28;wert&#x29;&#x2f;12&#x2a;100 else sum&#x28;wert&#x29;&#x2f;12 end as nrw_durchschnitt &#xa;from sxc_zahl_wert &#xa;where hs_nr in &#x28;&#x27;1130&#x27;,&#x27;1480&#x27;,&#x27;1140&#x27;,&#x27;1080&#x27;,&#x27;1090&#x27;,&#x27;1100&#x27;,&#x27;1110&#x27;,&#x27;1120&#x27;,&#x27;0080&#x27;,&#x27;0121&#x27;,&#x27;0130&#x27;,&#x27;0140&#x27;&#x29; &#xa;group by jahr,kenn_zahl,lfb&#xa;&#x3b;&#xa;&#xa;&#xa;update sxc_zahl_wert set generic_dim2&#x3d;&#x28;select N.nrw_durchschnitt&#xa;from tmp_nrw_durchschnitt N&#xa;where sxc_zahl_wert.jahr&#x3d;N.jahr&#xa;and sxc_zahl_wert.kenn_zahl&#x3d;N.kenn_zahl&#xa;and sxc_zahl_wert.generic_dim1&#x3d;N.lfb&#xa;and sxc_zahl_wert.sxc_bestand_id&#x3d;1&#x29;&#xa;&#x3b;&#xa;&#xa;drop table if exists tmp_nrw_durchschnitt&#x3b;</sql> <sql/>
<useVariableSubstitution>F</useVariableSubstitution> <useVariableSubstitution>F</useVariableSubstitution>
<sqlfromfile>F</sqlfromfile> <sqlfromfile>T</sqlfromfile>
<sqlfilename/> <sqlfilename>&#x24;&#x7b;Internal.Job.Filename.Directory&#x7d;&#x2f;insert_sxc_zahl_wert_nrw_schnitt.sql</sqlfilename>
<sendOneStatement>F</sendOneStatement> <sendOneStatement>F</sendOneStatement>
<connection>eduetl</connection> <connection>eduetl</connection>
<parallel>N</parallel> <parallel>N</parallel>

18
src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_injection.ktr

@ -526,27 +526,27 @@
<no_execution>N</no_execution> <no_execution>N</no_execution>
<stream_source_step/> <stream_source_step/>
<stream_target_step/> <stream_target_step/>
<mappings> <mapping> <target_step_name>Row Normaliser</target_step_name> <mappings> <mapping> <target_step_name>Text file input</target_step_name>
<target_attribute_key>FIELD_TYPE</target_attribute_key>
<target_detail>Y</target_detail>
<source_step>Data Grid</source_step>
<source_field>type_inputFields</source_field>
</mapping> <mapping> <target_step_name>Row Normaliser</target_step_name>
<target_attribute_key>VALUE</target_attribute_key> <target_attribute_key>VALUE</target_attribute_key>
<target_detail>Y</target_detail> <target_detail>Y</target_detail>
<source_step>tmp_feld</source_step> <source_step>tmp_feld</source_step>
<source_field>feld</source_field> <source_field>feld</source_field>
</mapping> <mapping> <target_step_name>Row Normaliser</target_step_name> </mapping> <mapping> <target_step_name>Row Normaliser</target_step_name>
<target_attribute_key>NORMALISED</target_attribute_key> <target_attribute_key>NORMALISED</target_attribute_key>
<target_detail>Y</target_detail> <target_detail>Y</target_detail>
<source_step>Data Grid</source_step> <source_step>Data Grid</source_step>
<source_field>trans_new_field</source_field> <source_field>trans_new_field</source_field>
</mapping> <mapping> <target_step_name>Row Normaliser</target_step_name> </mapping> <mapping> <target_step_name>Row Normaliser</target_step_name>
<target_attribute_key>NAME</target_attribute_key> <target_attribute_key>NAME</target_attribute_key>
<target_detail>Y</target_detail> <target_detail>Y</target_detail>
<source_step>tmp_feld</source_step> <source_step>tmp_feld</source_step>
<source_field>feld</source_field> <source_field>feld</source_field>
</mapping> <mapping> <target_step_name>Text file input</target_step_name> </mapping> <mapping> <target_step_name>Text file input</target_step_name>
<target_attribute_key>FIELD_TYPE</target_attribute_key>
<target_detail>Y</target_detail>
<source_step>Data Grid</source_step>
<source_field>type_inputFields</source_field>
</mapping> <mapping> <target_step_name>Text file input</target_step_name>
<target_attribute_key>FIELD_NAME</target_attribute_key> <target_attribute_key>FIELD_NAME</target_attribute_key>
<target_detail>Y</target_detail> <target_detail>Y</target_detail>
<source_step>tmp_feld_all</source_step> <source_step>tmp_feld_all</source_step>

4
src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/import_bestand_mwk_nrw_hskennz_template.ktr

@ -11,7 +11,7 @@
<parameters> <parameters>
<parameter> <parameter>
<name>PATH_TO_UPLOADFILE</name> <name>PATH_TO_UPLOADFILE</name>
<default_value>&#x2f;home&#x2f;superx&#x2f;Downloads&#x2f;stamm all - Auszug UDE-3.csv</default_value> <default_value>&#x2f;home&#x2f;superx&#x2f;Downloads&#x2f;stamm_all_ude.csv</default_value>
<description/> <description/>
</parameter> </parameter>
</parameters> </parameters>
@ -624,7 +624,7 @@
<rownumByFile>N</rownumByFile> <rownumByFile>N</rownumByFile>
<rownum_field/> <rownum_field/>
<format>mixed</format> <format>mixed</format>
<encoding>ISO-8859-1</encoding> <encoding>UTF-8</encoding>
<add_to_result_filenames>Y</add_to_result_filenames> <add_to_result_filenames>Y</add_to_result_filenames>
<file> <file>
<name>&#x24;&#x7b;PATH_TO_UPLOADFILE&#x7d;</name> <name>&#x24;&#x7b;PATH_TO_UPLOADFILE&#x7d;</name>

71
src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/insert_sxc_zahl_wert_nrw_schnitt.sql

@ -0,0 +1,71 @@
drop table if exists tmp_nrw_durchschnitt;
CREATE TABLE tmp_nrw_durchschnitt
(
jahr integer,
kenn_zahl char(100),
lfb char(100),
nrw_durchschnitt numeric
);
insert into tmp_nrw_durchschnitt
select
jahr,
kenn_zahl,
generic_dim1 as lfb,
case when kenn_zahl like '%_proz%' then sum(wert)/12*100 else sum(wert)/12 end as nrw_durchschnitt
from tmp_sxc_zahl_wert
where hs_nr in ('1130','1480','1140','1080','1090','1100','1110','1120','0080','0121','0130','0140')
group by jahr,kenn_zahl,lfb
;
delete from sxc_zahl_wert
where
sxc_bestand_id=1
and jahr in (select jahr from tmp_sxc_zahl_wert)
and hs_nr in (select hs_nr from tmp_sxc_zahl_wert)
;
INSERT INTO sxc_zahl_wert
(
hs_nr,
kenn_zahl,
jahr,
sem,
bland,
ch110_institut,
sxc_bestand_id,
wert,
generic_dim1,
generic_dim2
)
select
W.hs_nr,
W.kenn_zahl,
W.jahr,
W.sem,
W.bland,
W.ch110_institut,
W.sxc_bestand_id,
W.wert,
W.generic_dim1,
D.nrw_durchschnitt
from tmp_sxc_zahl_wert W
left outer join tmp_nrw_durchschnitt D on (
W.jahr=D.jahr
and W.kenn_zahl=D.kenn_zahl
and W.generic_dim1=D.lfb
and W.sxc_bestand_id=1)
where
hs_nr is not null
order by
sxc_bestand_id,1,2,3,4
;
drop table if exists tmp_sxc_zahl_wert;
drop table if exists tmp_nrw_durchschnitt;
drop table if exists tmp_nrw_durchschnitt;

39
src-modules/module/sxc/etl/import_bestand/mwk_nrw_hochschulkennzahlen/update_sxc_zahl_wert.sql

@ -0,0 +1,39 @@
update tmp_sxc_zahl_wert set
hs_nr=M.target_value
from
sxc_mapping_bestand M
where
M.sxc_bestand_id=1
and M.object_type='Hochschule'
and M.object_value=tmp_sxc_zahl_wert.hs_nr_str
;
update tmp_sxc_zahl_wert
set wert =
case
when wert_str != '--'
and wert_str is not null
and wert_str <> ''
then cast(replace(wert_str, ',' , '.') as decimal(30,20)) * 100
else null
end
where kenn_zahl like '%_proz%'
;
update tmp_sxc_zahl_wert
set wert =
case
when wert_str != '--'
and wert_str is not null
and wert_str <> ''
then cast(replace(wert_str, ',' , '.') as decimal(30,20))
else null
end
where wert is null
;
update tmp_sxc_zahl_wert set sxc_bestand_id=1; -- MKW NRW Hochschulkennzahlen
update tmp_sxc_zahl_wert set bland=5; -- NRW
Loading…
Cancel
Save