You are on page 1of 9

--INTRODUCCIÓN

SELECT
VS.cuenta,
Case when limcompra = 0 then 0 else ( SaldoTotal / limcompra ) end as UT,
id_mes ,
Case when limcompra = 0 then 0 else
Case when ( SaldoTotal / limcompra ) > 0 then 1 else 0 end end
as ut0,
Case when limcompra = 0 then 0 else
Case when ( SaldoTotal / limcompra ) > 0.15 then 1 else 0 end end
as ut15,
Case when limcompra = 0 then 0 else
Case when ( SaldoTotal / limcompra ) > 0.25 then 1 else 0 end end
as ut25,
Case when limcompra = 0 then 0 else
Case when ( SaldoTotal / limcompra ) > 0.50 then 1 else 0 end end
as ut50,
Case when limcompra = 0 then 0 else
Case when ( SaldoTotal / limcompra ) > 0.60 then 1 else 0 end end
as ut060,
Case when limcompra = 0 then 0 else
Case when ( SaldoTotal / limcompra ) > 0.75 then 1 else 0 end end
as ut75,
Case when limcompra = 0 then 0 else
Case when ( SaldoTotal / limcompra ) > 0.90 then 1 else 0 end end
as ut90,
Case when limcompra = 0 then 0 else
Case when ( SaldoTotal / limcompra ) > 0.95 then 1 else 0 end end
as ut95,
Case when limcompra = 0 then 0 else
Case when ( SaldoTotal / limcompra ) > 1.0 then 1 else 0 end end
as ut100

-----------------------------------------------------------------------------------
--Nueva variable SaldoTotal_V2
,Case when limcompra_v2 = 0 then 0 else ( SaldoTotal_v2 / limcompra_v2
) end as UT_v2,

Case when limcompra_v2 = 0 then 0 else


Case when ( SaldoTotal_v2 / limcompra_v2 ) > 0 then 1 else 0
end end as ut0_v2,
Case when limcompra_v2 = 0 then 0 else
Case when ( SaldoTotal_v2 / limcompra_v2 ) > 0.15 then 1 else 0
end end as ut15_v2,
Case when limcompra_v2 = 0 then 0 else
Case when ( SaldoTotal_v2 / limcompra_v2 ) > 0.25 then 1 else 0
end end as ut25_v2,
Case when limcompra_v2 = 0 then 0 else
Case when ( SaldoTotal_v2 / limcompra_v2 ) > 0.50 then 1 else 0
end end as ut50_v2,
Case when limcompra_v2 = 0 then 0 else
Case when ( SaldoTotal_v2 / limcompra_v2 ) > 0.60 then 1 else 0
end end as ut060_v2,
Case when limcompra_v2 = 0 then 0 else
Case when ( SaldoTotal_v2 / limcompra_v2 ) > 0.75 then 1 else 0
end end as ut75_v2,
Case when limcompra_v2 = 0 then 0 else
Case when ( SaldoTotal_v2 / limcompra_v2 ) > 0.90 then 1 else 0
end end as ut90_v2,
Case when limcompra_v2 = 0 then 0 else
Case when ( SaldoTotal_v2 / limcompra_v2 ) > 0.95 then 1 else 0
end end as ut95_v2,
Case when limcompra_v2 = 0 then 0 else
Case when ( SaldoTotal_v2 / limcompra_v2 ) > 1.0 then 1 else 0
end end as ut100_v2

-----------------------------------------------------------------------------------
-
INTO
dbo.tmp_sco_tc_ut
FROM
dbo.tmp_sco_tc_visasocios_1 VS
left join tmp_sco_tc_visasaldos_score VSa
on Vs.cuenta = VSa.Cuenta

SELECT
VSA.cuenta
AS cuenta,
VSA.Id_Mes
AS Id_Mes,
VSA.grupocodi
AS grupo_cierre,
VSA.actualcierrefecha
AS fhcierre,
VSA.anteantecambiotipo
AS tipocambio,
CASE WHEN VSA.actualPesosSaldo > 3000 THEN 3000
WHEN VSA.actualPesosSaldo <= 0 THEN 0
ELSE VSA.actualPesosSaldo END
AS SaldoTotal,
ActualDolarImpo
AS SaldoDol,
CASE WHEN PeriPesosCompras > 1500 THEN 1500
WHEN PeriPesosCompras <= 0 THEN 0
ELSE PeriPesosCompras END AS
Compras,
VSA.PeriDolarCompra AS
ComprasDol,
VSA.CompraLimiExcImpor
AS ExcesoLim,
VSA.ActualPuniAcuInte
AS Punitorios,
VSA.DolarIntPuni
AS PunitoriosDol,
CASE WHEN VSA.ActualMiniPago > 1000 THEN 1000
WHEN VSA.ActualMiniPago <= 0 THEN 0
ELSE VSA.ActualMiniPago END AS
PMin,
CASE WHEN VSA.AntePendienMiniPago > 300 THEN 300
WHEN VSA.AntePendienMiniPago <= 0 THEN 0
ELSE VSA.AntePendienMiniPago END AS
PMinPend,
VSA.Dias120AImpaMiniPago AS
PMI120d,
VSA.Dias360AImpaMiniPago AS
PMI360d,
CASE WHEN VSA.AnteTotalPago > 2000 THEN 2000
WHEN VSA.AnteTotalPago <= 0 THEN 0
ELSE VSA.AnteTotalPago END AS
Pagoshstcierre,
CASE WHEN VSA.ActualPesosAde > 300 THEN 300
WHEN VSA.ActualPesosAde<= 0 THEN 0
ELSE VSA.ActualPesosAde END AS
Adelantos,
VSA.ActualDolarAde
AS AdelantosDol,
VSA.PeriPesosOtorAdeCant + VSA.PeriDolarOtorAdeCant AS CantAdelantosOtor,
VSA.PeriPesosOtorAdeTotal AS
AdelantosOtor,
VSA.PeriDolarOtorAdeTotal AS
AdelantosDolOtor,
CASE WHEN VSA.PesosCuotasConsu >1500 THEN 1500
WHEN VSA.PesosCuotasConsu <= 0 THEN 0
ELSE VSA.PesosCuotasConsu END AS
CuotasPend,
VSA.DolarCuotasConsu
AS CuotasPendDol,
CASE WHEN VSA.PesosCuotasConsuAutoImpo > 1500 THEN 1500
WHEN VSA.PesosCuotasConsuAutoImpo <= 0 THEN 0
ELSE VSA.PesosCuotasConsuAutoImpo END AS
Cuotas,
VSA.DolarCuotasConsuAutoImpo AS
CuotasPesos

---------------------------------------------------------------------
--Nueva variable SaldoTotal_v2
,CASE
WHEN VSA.actualPesosSaldo <= 0 THEN 0
ELSE VSA.actualPesosSaldo END
AS SaldoTotal_v2
---------------------------------------------------------------------
--Nueva variable Compras_v2
,CASE
WHEN PeriPesosCompras <= 0 THEN 0
ELSE PeriPesosCompras END AS
Compras_v2
---------------------------------------------------------------------
--Nueva variable PMin_v2
,CASE
WHEN VSA.ActualMiniPago <= 0 THEN 0
ELSE VSA.ActualMiniPago END AS
PMin_v2,
----------------------------------------------------------------------
--Nueva variable PMinPend_v2
CASE
WHEN VSA.AntePendienMiniPago <= 0 THEN 0
ELSE VSA.AntePendienMiniPago END AS
PMinPend_v2,
----------------------------------------------------------------------
--Nueva variable Pagoshstcierre_v2
CASE
WHEN VSA.AnteTotalPago <= 0 THEN 0
ELSE VSA.AnteTotalPago END AS
Pagoshstcierre_v2,
----------------------------------------------------------------------
--Nueva variable AdelantosPesos_v2
CASE
WHEN VSA.ActualPesosAde<= 0 THEN 0
ELSE VSA.ActualPesosAde END AS
AdelantosPesos_v2,
----------------------------------------------------------------------
--Nueva variable CuotasPend_v2
CASE
WHEN VSA.PesosCuotasConsu <= 0 THEN 0
ELSE VSA.PesosCuotasConsu END AS
CuotasPend_v2,
----------------------------------------------------------------------
--Nueva variable Cuotas_v2
CASE
WHEN VSA.PesosCuotasConsuAutoImpo <= 0 THEN 0
ELSE VSA.PesosCuotasConsuAutoImpo END AS
Cuotas_v2

INTO
dbo.tmp_sco_tc_visasaldos_score
FROM
dbo.tmp_sco_tc_visasaldosx6 AS VSA

---------------------------------------------------------------------
--RUT25_1_v2
---------------------------------------------------------------------

SELECT
cuenta ,
sum (0.0 + ut25_v2) / 3 as ut25_av3_v2
INTO
dbo.tmp_sco_tc_ut25_av3_v2
FROM
dbo.tmp_sco_tc_ut TA (nolock)
WHERE
TA.Id_mes IN (6,5,4)
GROUP BY
cuenta
-------------------
SELECT
cuenta ,
sum (0.0 + ut25_v2)/ 6 as ut25_av6_v2
INTO
dbo.tmp_sco_tc_ut25_av6_v2

FROM
dbo.tmp_sco_tc_ut TA (nolock)

GROUP BY
cuenta
-------------------
SELECT
AV6.cuenta,
CASE ut25_av6_v2
when 0 then 0
else ut25_av3_v2 / ut25_av6_v2
end as rut25_1_v2

INTO
dbo.tmp_sco_tc_rut25_1_v2
FROM
dbo.tmp_sco_tc_ut25_av6_v2 AV6
left join dbo.tmp_sco_tc_ut25_av3_v2 AV3
on AV6.cuenta = AV3.Cuenta

---------------------------------------------------------------------
--INT2_V2
---------------------------------------------------------------------

SELECT
UT.cuenta ,
Case when limcompra = 0 then 0 else
( ut * limfinanc /limcompra )
end as int2 ,
Case when limcompra_v2 = 0 then 0 else
( ut_v2 * limfinanc_v2 /limcompra_v2 )
end as int2_v2

INTO
dbo.tmp_sco_tc_int2
FROM
dbo.tmp_sco_tc_ut UT
left join tmp_sco_tc_visasocios_1 VSO
on UT.cuenta = VSO.Cuenta
WHERE
id_mes = 6
---------------------------------------------------------------------
--B5F_2M3_v2
---------------------------------------------------------------------

SELECT
distinct Cuenta,
1 as B5F_2M3_v2
INTO
dbo.tmp_sco_tc_B5F_2M3_v2
FROM
dbo.tempo_v2
WHERE
bsf_v2 > 0
AND i IN (5, 4)
---------------------------------------------------------------------
--RBGF_XM6_v2
---------------------------------------------------------------------
-- Hacer el update sobre la fact
UPDATE
dbo.sco_tc_fact
SET
VADL_ZM = ISNULL(VADL_ZM.vadl_zm3, 0),
RPM6 = ISNULL(RPM6.RPM6, 0),
IPP6_LM6 = ISNULL(IPP6_LM6.IPP6_LM6, 0),
-- LANN6 = , Se carga en otra parte del proceso
PEB_B5 = ISNULL(PEB_B5.PEB_B5, 0),
-- STACUMAS = , Se carga en otra parte del proceso
RBGF_XM6 = ISNULL(RBGF_XM6.rbsf_xm6, 0),
B5F_2M3 = ISNULL(B5F_2M3.bsf_zm3, 0),
INT2 = ISNULL(INT2.int2, 0),
PLUB_AVG = ISNULL(PLUB_AVG.pl0b_av6, 0),
RUT25_1 = ISNULL(RUT25_1.rut25_1, 0),
VTO_AVG = ISNULL(VTO_AVG.VTO_AVG, 0),
VT75_2M3 = ISNULL(VT75_2M3.VT75_2M3, 0),
-------------------------------------------------------------------
--NUEVAS VARIABLES --
-- vadl_zm3_v2 = ISNULL(vadl_zm3_v2.vadl_zm3_v2, 0),
RPM6_v2 = ISNULL(RPM6_v2.RPM6_v2, 0),
-- IPP6_LM6_v2 = ISNULL(IPP6_LM6_v2.IPP6_LM6_v2, 0),
PEB_B5_v2 = ISNULL(PEB_B5_v2.PEB_B5_v2, 0),
RBGF_XM6_v2 = ISNULL(rbsf_xm6_v2.rbsf_xm6_v2, 0),
B5F_2M3_v2 = ISNULL(B5F_2M3_v2.B5F_2M3_v2, 0),
INT2_V2 = ISNULL(INT2.int2_v2, 0),
-- PLUB_AVG_v2 = ISNULL(PLUB_AVG_v2.pl0b_av6_v2, 0),
RUT25_1_v2 = ISNULL(RUT25_1_v2.rut25_1_v2, 0),
-- VTO_AVG_v2 = ISNULL(VTO_AVG_v2.VTO_AVG_v2, 0),
VT75_2M3_v2 = ISNULL(VT75_2M3_v2.VT75_2M3_v2, 0)
-------------------------------------------------------------------
FROM
dbo.sco_tc_fact AS DEF
INNER JOIN tmp_sco_tc_fact_Fraccionada AS TMP
ON DEF.ID_Cuenta_TC = TMP.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_vadl_zm3 AS VADL_ZM
ON TMP.Cuenta = VADL_ZM.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_RPM6 AS RPM6
ON TMP.Cuenta = RPM6.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_IPP6_LM6 AS IPP6_LM6
ON TMP.Cuenta = IPP6_LM6.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_PEB_B5 AS PEB_B5
ON TMP.Cuenta = PEB_B5.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_rbsf_xm6 AS RBGF_XM6
ON TMP.Cuenta = RBGF_XM6.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_bsf_zm3 AS B5F_2M3
ON TMP.Cuenta = B5F_2M3.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_int2 AS INT2 -- + INT2_V2 --
COMPARTEN TABLA
ON TMP.Cuenta = INT2.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_pl0b_av6 AS PLUB_AVG
ON TMP.Cuenta = PLUB_AVG.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_rut25_1 AS RUT25_1
ON TMP.Cuenta = RUT25_1.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_VTO_AVG AS VTO_AVG
ON TMP.Cuenta = VTO_AVG.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_VT75_2M3 AS VT75_2M3
ON TMP.Cuenta = VT75_2M3.Cuenta
----------------------------------------------------------------------
--NUEVAS VARIABLES --**--

-- LEFT OUTER JOIN dbo.tmp_sco_tc_vadl_zm3_v2 AS vadl_zm3_v2


-- ON TMP.Cuenta = vadl_zm3_v2.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_RPM6_v2 AS RPM6_v2
ON TMP.Cuenta = RPM6_v2.Cuenta
-- LEFT OUTER JOIN dbo.tmp_sco_tc_IPP6_LM6_v2 AS IPP6_LM6_v2
-- ON TMP.Cuenta = IPP6_LM6_v2.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_PEB_B5_v2 AS PEB_B5_v2
ON TMP.Cuenta = PEB_B5_v2.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_rbsf_xm6_v2 AS rbsf_xm6_v2
ON TMP.Cuenta = rbsf_xm6_v2.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_B5F_2M3_v2 AS B5F_2M3_v2
ON TMP.Cuenta = B5F_2M3_v2.Cuenta
-- LEFT OUTER JOIN dbo.tmp_sco_tc_pl0b_av6_v2 AS PLUB_AVG_v2
-- ON TMP.Cuenta = PLUB_AVG_v2.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_rut25_1_v2 AS RUT25_1_v2
ON TMP.Cuenta = RUT25_1_v2.Cuenta
-- LEFT OUTER JOIN dbo.tmp_sco_tc_VTO_AVG_v2 AS VTO_AVG_v2
-- ON TMP.Cuenta = VTO_AVG_v2.Cuenta
LEFT OUTER JOIN dbo.tmp_sco_tc_VT75_2M3_v2 AS VT75_2M3_v2
ON TMP.Cuenta = VT75_2M3_v2.Cuenta
-----------------------------------------------------------------------------------
--------------------------------------
if exists (select * from dbo.sysobjects where id = object_id('[dbo].[tempo_v2]')
and OBJECTPROPERTY(id, 'IsUserTable') = 1)
drop table [dbo].[tempo_v2]
-----------------------------------------------------------------------------------
--------------------------------------
CREATE TABLE dbo.tempo_v2
(
cuenta int ,
bsf_v2 float,
i tinyint
)

INSERT INTO dbo.tempo_v2


SELECT cuenta, ISNULL(vSaldoTotal_v2_1 - vPagoshstcierre_v2_2, 0), 1
FROM tmp_sco_tc_ValoresInput

INSERT INTO dbo.tempo_v2


SELECT cuenta, ISNULL (vSaldoTotal_v2_2 - vPagoshstcierre_v2_3, 0),2
FROM tmp_sco_tc_ValoresInput

INSERT INTO dbo.tempo_v2


SELECT cuenta, ISNULL( vSaldoTotal_v2_3 - vPagoshstcierre_v2_4, 0),3
FROM tmp_sco_tc_ValoresInput

INSERT INTO dbo.tempo_v2


SELECT cuenta,ISNULL( vSaldoTotal_v2_4 - vPagoshstcierre_v2_5, 0),4
FROM tmp_sco_tc_ValoresInput

INSERT INTO dbo.tempo_v2


SELECT cuenta, ISNULL( vSaldoTotal_v2_5 - vPagoshstcierre_v2_6, 0),5
FROM tmp_sco_tc_ValoresInput

--------------------------------------------------------------

IF EXISTS (SELECT name FROM sysindexes WHERE name = 'IDX_tempo_v201')


DROP INDEX tempo_v2.IDX_tempo_v201
CREATE INDEX IDX_tempo_v201 ON tempo_v2 ( Cuenta, bsf_v2, i )

-----------------------------------------------------------------------------------
------------------------------------
--Creo temporal con el maximo saldo financiado
if exists (select * from dbo.sysobjects where id = object_id('[dbo].
[tmp_sco_tc_bsfmax6_v2]') and OBJECTPROPERTY(id, 'IsUserTable') = 1)
drop table [dbo].[tmp_sco_tc_bsfmax6_v2]
-----------------------------------------------------------------------------------
----------------------------------
SELECT
cuenta ,
MAX (bsf_v2) AS bsfmax6_v2
INTO
dbo.tmp_sco_tc_bsfmax6_v2
FROM
dbo.tempo_v2
GROUP BY
cuenta

IF EXISTS (SELECT name FROM sysindexes WHERE name = 'IDX_tmp_sco_tc_bsfmax6_v201')


DROP INDEX tmp_sco_tc_bsfmax6_v2.IDX_tmp_sco_tc_bsfmax6_v201
CREATE INDEX IDX_tmp_sco_tc_bsfmax6_v201 ON tmp_sco_tc_bsfmax6_v2 (Cuenta)

-----------------------------------------------------------------------------------
-------------------------------
if exists (select * from dbo.sysobjects where id = object_id('[dbo].
[tmp_sco_tc_rbsf_xm6_v2]') and OBJECTPROPERTY(id, 'IsUserTable') = 1)
drop table [dbo].[tmp_sco_tc_rbsf_xm6_v2]
-----------------------------------------------------------------------------------
----------------------------------
SELECT
TM.Cuenta ,
CASE WHEN actualPesosSaldoMax6_v2 = 0
THEN 0
ELSE CASE WHEN ( bsfmax6_v2 / actualPesosSaldoMax6_v2 ) < 0 THEN 0
ELSE ( bsfmax6_v2 / actualPesosSaldoMax6_v2 ) END
END AS rbsf_xm6_v2
INTO
dbo.tmp_sco_tc_rbsf_xm6_v2
FROM
dbo.tmp_sco_tc_bsfmax6_v2 TM
LEFT JOIN dbo.tmp_sco_tc_saldomax6_v2 VSC
ON VSC.Cuenta = TM.Cuenta
-----------------------------------------------------------------------------------
----------------------------------
**El origen de todo este universo es “VisaSaldos” de la base de SmartOpen:

SELECT *
FROM dbo.VisaSaldos sa
WHERE sa.ProceFecha >= '$$mFechaActualizacion' OR sa.ActualCierreFecha >=
'$$mFechaActualizacion'

---------------------------------------------------------------------
--PEB_B5_v2
---------------------------------------------------------------------
SELECT
cuenta,
1 as PEB_B5_v2 -- nueva variable porque sera un nuevo resultado porque para
su calculo se usa una de las nuevas.
INTO
dbo.tmp_sco_tc_PEB_B5_v2
FROM
tmp_sco_tc_ValoresInput
WHERE
vPagoshstcierre_v2_6 >= VSaldoTotal_v2_5 --ambas variables son nuevas
AND vPMin_v2_5 > 0
---------------------------------------------------------------------
--RPM6_v2
---------------------------------------------------------------------
SELECT
cuenta ,
CASE
WHEN ISNULL( VSaldoTotal_v2_6, 0 ) = 0 THEN 0
WHEN VSaldoTotal_v2_6 < 1500 THEN 0.21
ELSE
( vPMin_v2_6 / VSaldoTotal_v2_6 ) -- numerador y cociente variables
nuevas!
END AS RPM6_v2
INTO
dbo.tmp_sco_tc_RPM6_v2
FROM
dbo.tmp_sco_tc_ValoresInput

You might also like