Transformation rules applied to the ETL staging area.
SQL
(SELECT CASE WHEN conto.tipo_conversione = '1' THEN ( campo13::numeric(27,9) / CAMBIO1.cambio_finale ) * CAMBIO2.cambio_finale WHEN conto.tipo_conversione = '2' THEN ( campo13::numeric(27,9) / CAMBIO1.cambio_medio ) * CAMBIO2.cambio_medio WHEN conto.tipo_conversione = '3' THEN ( campo13::numeric(27,9) / CAMBIO1.cambio_finale ) * CAMBIO2.cambio_finale WHEN conto.tipo_conversione = '4' THEN ( campo13::numeric(27,9) / CAMBIO1.cambio_medio ) * CAMBIO2.cambio_medio WHEN conto.tipo_conversione = '5' THEN ( campo13::numeric(27,9) / CAMBIO1.cambio_finale ) * CAMBIO2.cambio_finale ELSE campo13::numeric(27,9) / 1.0 END * VALUTA1.coefficiente_rif / VALUTA2.coefficiente_rif FROM conto, valuta VALUTA1, valuta VALUTA2, dati_cambio CAMBIO1, dati_cambio CAMBIO2 WHERE conto.cod_conto = campo4 AND VALUTA1.cod_valuta = campo12 AND VALUTA2.cod_valuta = campo11 AND CAMBIO1.cod_scenario = campo1 AND CAMBIO1.cod_periodo = campo2 AND CAMBIO1.cod_valuta = ( CASE WHEN VALUTA1.cod_valuta_rif IS NULL THEN VALUTA1.cod_valuta ELSE VALUTA1.cod_valuta_rif END ) AND CAMBIO2.cod_scenario = campo1 AND CAMBIO2.cod_periodo = campo2 AND CAMBIO2.cod_valuta = ( CASE WHEN VALUTA2.cod_valuta_rif IS NULL THEN VALUTA2.cod_valuta ELSE VALUTA2.cod_valuta_rif END ))