Advertisement
matablata

aq

Jul 9th, 2021
1,475
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Oracle 8 10.97 KB | None | 0 0
  1. SELECT "Codigo_Producto",
  2.             "Poliza",
  3.             "Codigo_Cobertura",
  4.             CASE
  5.                 WHEN "Codigo_Producto" IN (904,910) THEN 'Principal'
  6.                 ELSE "Tipo_Cobertura"
  7.             END AS "Tipo_Cobertura",
  8.             "Rol",
  9.             "Rut",
  10.             "Tipo_Calculo",
  11.             "Reserva",
  12.             "Canal_Comision",  
  13.             "Frecuencia_Pago_Primas",
  14.             "Fecha_Inicio_Vigencia",
  15.             CASE
  16.                 WHEN "Codigo_Producto" = 336 THEN "Fecha_Nacimiento" + 680000
  17.                 WHEN "Codigo_Producto" IN (380,360)  AND "Fecha_Fin_Vigencia" <= "Fecha_Inicio_Vigencia"+50000  THEN "Fecha_Inicio_Vigencia"+50000
  18.                 WHEN "Codigo_Producto" IN (910,904)  THEN "Fecha_Nacimiento" + 700000  
  19.                 WHEN "Codigo_Producto" = 294 AND MONTHS_BETWEEN(TO_DATE( "Fecha_Nacimiento" + 660000,'YYYY-MM-DD'),TO_DATE("Fecha_Inicio_Vigencia",'YYYY-MM-DD')) >= 60 THEN "Fecha_Nacimiento" + 650000
  20.                 WHEN "Codigo_Producto" = 294 AND MONTHS_BETWEEN(TO_DATE( "Fecha_Nacimiento" + 660000,'YYYY-MM-DD'),TO_DATE("Fecha_Inicio_Vigencia", 'YYYY-MM-DD')) < 60 THEN "Fecha_Inicio_Vigencia" + 50000
  21.                 ELSE TO_NUMBER("Fecha_Fin_Vigencia")
  22.             END AS  "Fecha_Fin_Vigencia",
  23.             CASE
  24.                 WHEN "Codigo_Producto" = 336 THEN    MONTHS_BETWEEN(TO_DATE("Fecha_Nacimiento"+690000,'YYYY-MM-DD'), TO_DATE( "Fecha_Fin_Vigencia",'YYYY-MM-DD'))
  25.                 WHEN "Codigo_Producto" IN (380,360)  AND "Periodo_Pago_Primas" <60 THEN 60
  26.                 WHEN "Codigo_Producto" IN (910,904) THEN  MONTHS_BETWEEN(TO_DATE("Fecha_Nacimiento"+710000,'YYYY-MM-DD'), TO_DATE( "Fecha_Fin_Vigencia",'YYYY-MM-DD'))
  27.                 ELSE "Periodo_Pago_Primas"
  28.             END AS "Periodo_Pago_Primas",
  29.             "Recargo_Multiplicativo",
  30.             "Recargo_Aditivo",
  31.             "Capital_Asegurado",
  32.             "Capital_Cedido",
  33.             "Fecha_Nacimiento",
  34.             "Genero",
  35.             "Fumador",
  36.             "Tasa_Reserva",
  37.             CASE
  38.                 WHEN "Codigo_Producto" IN (910, 904) THEN "Prima_Basica_Anual"
  39.                 ELSE "Prima_Anual"
  40.             END AS "Prima_Anual",
  41.             "Plan",
  42.             "Modalidad_Inversion",
  43.             "Tasa_Minima_Garantizada",
  44.             CASE
  45.                 WHEN  "Codigo_Producto" = 380 THEN 0.1
  46.                 ELSE "Prima_Basica_Anual"
  47.             END AS "Prima_Basica_Anual",
  48.             "Prima_Segura_Anual",
  49.             "Prima_Proyectada",
  50.             "Recaudacion_Acumulada",
  51.             "Rescates_Acumulados",
  52.             "NYEARMONTH",
  53.             "Tipo_Moneda",
  54.             "NACQUIS_UNDER30",
  55.             "Valor_Fondo",
  56.             "Fondo_57BIS",
  57.             "Monto_Prestamo",
  58.             "Tasa_Interes_Prestamo",
  59.             "Bono",
  60.             "Renta",
  61.             "Numero_Rentas",
  62.             "Tasa_Interes_Inversion_Gold",
  63.             "Segmento_Resultados_Adicional",
  64.             "Archivo_Parametros",
  65.             "Aplica_Recargo",
  66.             "Porc_Recargo",
  67.             "Factor_RA",
  68.             "Factor_RM",
  69.             "Antiguedad_Agente",
  70.             "NGRACE_PERIOD",
  71.             "NAGENCY",
  72.             "SSELLCHANNEL_AGENCIES"          
  73.     FROM (
  74.         SELECT
  75.                 POL.NPRODUCT AS "Codigo_Producto",
  76.                 CV.NPOLICY AS "Poliza",
  77.                 CV.NCOVER AS "Codigo_Cobertura",
  78.                 CASE
  79.                     WHEN cv.NCOVER IN (6,800,900,2) OR pol.NPRODUCT IN (904, 910) THEN 'Principal' ELSE 'Adicional'
  80.                 END AS "Tipo_Cobertura",
  81.                 rv.NROLE AS "Rol",
  82.                 TO_NUMBER(rv.SCLIENT) AS "Rut",
  83.                 CASE
  84.                     WHEN pol.NPRODUCT IN (294, 360, 380, 600, 650) THEN 'VF'
  85.                     WHEN pol.NPRODUCT IN (336, 904, 910) THEN 'RC'
  86.                     WHEN pol.NPRODUCT IN (290,291,801) AND cv.NCOVER = 6 THEN 'M'ELSE 'RC'
  87.                 END AS "Tipo_Calculo",
  88.                 1 AS "Reserva",
  89.                 CASE
  90.                     WHEN pol.SSELLCHANNEL = 'AGENCIAL' THEN 'Agencial'
  91.                     WHEN pol.SSELLCHANNEL = 'AGENCIAL NVO' THEN'Agencial_Nuevo'
  92.                     WHEN pol.SSELLCHANNEL = 'CORREDORES' THEN 'Corredor'
  93.                     WHEN pol.SSELLCHANNEL = 'DIRECTO' THEN 'Directo'
  94.                     WHEN pol.SSELLCHANNEL = 'MANTENCION' THEN 'Mantencion'
  95.                     WHEN pol.SSELLCHANNEL = 'OTRO' THEN 'Directo'
  96.                     WHEN pol.SSELLCHANNEL = 'LIBRE LYON' THEN 'Agentes_Libre_Lyon'
  97.                 END AS "Canal_Comision",
  98.                 pol.NPAYFREQ AS "Frecuencia_Pago_Primas",
  99.                 TO_NUMBER(EXTRACT(YEAR FROM POL.DDATE_ORIGI))||
  100.                 CASE
  101.                     WHEN TO_NUMBER(EXTRACT(MONTH FROM POL.DDATE_ORIGI)) <10 THEN 0||TO_NUMBER(EXTRACT(MONTH FROM POL.DDATE_ORIGI))
  102.                     ELSE TO_CHAR(EXTRACT(MONTH FROM POL.DDATE_ORIGI))
  103.                 END||
  104.                 CASE
  105.                     WHEN TO_NUMBER(EXTRACT(DAY FROM POL.DDATE_ORIGI)) <10 THEN 0||TO_NUMBER(EXTRACT(DAY FROM POL.DDATE_ORIGI))
  106.                     ELSE TO_CHAR(EXTRACT(DAY FROM POL.DDATE_ORIGI))
  107.                 END AS "Fecha_Inicio_Vigencia",
  108.                 TO_NUMBER(EXTRACT(YEAR FROM POL.DEXPIRDAT))||
  109.                 CASE
  110.                     WHEN TO_NUMBER(EXTRACT(MONTH FROM POL.DEXPIRDAT)) <10 THEN 0||TO_NUMBER(EXTRACT(MONTH FROM POL.DEXPIRDAT))
  111.                     ELSE TO_CHAR(EXTRACT(MONTH FROM POL.DEXPIRDAT))
  112.                 END||
  113.                 CASE
  114.                     WHEN TO_NUMBER(EXTRACT(DAY FROM POL.DEXPIRDAT)) <10 THEN 0||TO_NUMBER(EXTRACT(DAY FROM POL.DEXPIRDAT))
  115.                     ELSE TO_CHAR(EXTRACT(DAY FROM POL.DEXPIRDAT))  
  116.                 END AS "Fecha_Fin_Vigencia",
  117.                 (TO_NUMBER(EXTRACT(YEAR FROM pol.DEXPIRDAT)) - TO_NUMBER(EXTRACT(YEAR FROM pol.DSTARTDATE)))*12
  118.                 +(TO_NUMBER(EXTRACT(MONTH FROM pol.DEXPIRDAT))
  119.                 - TO_NUMBER(EXTRACT(MONTH FROM pol.DSTARTDATE))) AS "Periodo_Pago_Primas",
  120.                 CASE
  121.                     WHEN CV.NRECAMOUNT_M IS NULL THEN 0 ELSE CV.NRECAMOUNT_M
  122.                 END AS "Recargo_Multiplicativo",
  123.                 CASE
  124.                     WHEN CV.NRECAMOUNT_A IS NULL THEN 0 ELSE CV.NRECAMOUNT_A
  125.                 END AS "Recargo_Aditivo",
  126.                 CV.NCAPITAL_INSU AS "Capital_Asegurado",
  127.                 CV.NCAPITAL_REIN AS "Capital_Cedido",
  128.                 TO_NUMBER(rv.NDB_YYYY) ||
  129.                 CASE
  130.                     WHEN rv.NDB_MM<10 THEN 0 || rv.NDB_MM ELSE TO_CHAR(rv.NDB_MM)
  131.                 END||
  132.                 CASE
  133.                     WHEN rv.NDB_DD<10 THEN 0 || rv.NDB_DD ELSE TO_CHAR(rv.NDB_DD)
  134.                 END AS "Fecha_Nacimiento",
  135.                 CASE
  136.                     WHEN rv.SSEXCLIEN = '1' THEN 'F' ELSE 'M'
  137.                 END AS "Genero",
  138.                 CASE
  139.                     WHEN rv.SSMOKING = '1' THEN 'F' ELSE 'NF'
  140.                 END AS "Fumador",
  141.                 CASE
  142.                     WHEN pol.DSTARTDATE <= TO_DATE('31/12/80', 'DD/MM/YYYY') THEN 5 ELSE 3
  143.                 END AS "Tasa_Reserva",
  144.                 CASE
  145.                     WHEN pol.NPRODUCT NOT IN (904,910, 336) THEN CV.NPREMIUM_NET + CV.NPREMIUM_EXT -CVC.NDESCAMOUNT
  146.                     ELSE cvc.PRIMA_BASICA_COV
  147.                 END AS "Prima_Anual",
  148.                 CASE
  149.                     WHEN pol.NOPTION = 1 THEN '187'
  150.                     WHEN pol.NOPTION = 2 THEN '188'
  151.                     WHEN pol.NOPTION = 0 THEN '0'
  152.                 END AS "Plan",
  153.                 CASE
  154.                 WHEN pol.NTYPEINVEST IS NULL THEN 0 ELSE pol.NTYPEINVEST
  155.                 END AS "Modalidad_Inversion",
  156.                 CASE
  157.                     WHEN pol.NWARMINIT IS NULL THEN 0 ELSE NWARMINIT
  158.                 END AS "Tasa_Minima_Garantizada",
  159.                 cvc.PRIMA_BASICA_COV  AS "Prima_Basica_Anual",
  160.                 CVC.PRIMA_SEGURA  AS "Prima_Segura_Anual",
  161.                 CASE
  162.                     WHEN pol.NAMOUNTDEP IS NULL THEN 0
  163.                     WHEN cv.NCOVER NOT IN (6,800,900,2) AND pol.NPRODUCT NOT IN (904, 910) THEN 0 -- 0 A LOS ADICIONALES
  164.                     ELSE pol.NAMOUNTDEP
  165.                 END AS "Prima_Proyectada", 
  166.                 CASE
  167.                     WHEN  cv.NCOVER NOT IN (6,800,900,2) AND pol.NPRODUCT NOT IN (904, 910) THEN 0
  168.                     ELSE pol.REC_ACUMULADA
  169.                 END AS "Recaudacion_Acumulada",
  170.                 CASE
  171.                     WHEN cv.NCOVER NOT IN (6,800,900,2) AND pol.NPRODUCT NOT IN (904, 910) THEN 0 -- 0 A LOS ADICIONALES
  172.                     ELSE pol.NAMOUNT_RESC
  173.                 END AS "Rescates_Acumulados",
  174.                 CV.NYEARMONTH,
  175.                 CASE
  176.                     WHEN CV.NACQUIS_OVER30 IS NULL THEN 0 ELSE CV.NACQUIS_OVER30
  177.                 END AS NACQUIS_UNDER30,
  178.                 CASE
  179.                     WHEN pol.VALOR_POLIZA_P IS NULL OR cv.NCOVER NOT IN (6,800,900,2) AND pol.NPRODUCT NOT IN (904, 910) THEN 0 -- asignar 0 a los adicionales
  180.                     WHEN pol.NPRODUCT IN (294,297) THEN 0
  181.                     WHEN pol.NPRODUCT = 360 AND pol.NPAYFREQ = 6 THEN 0
  182.                     WHEN pol.NPRODUCT = 360 THEN pol.VALOR_POLIZA_P*2
  183.                     ELSE pol.VALOR_POLIZA_P
  184.                 END AS "Valor_Fondo",
  185.                 CASE
  186.                     WHEN pol.VALOR_POLIZA_A IS NULL OR cv.NCOVER NOT IN (6,800,900,2) AND pol.NPRODUCT NOT IN (904, 910) THEN 0 -- 0 A LOS ADICIONALES
  187.                     ELSE pol.VALOR_POLIZA_A  --
  188.                 END AS "Fondo_57BIS",
  189.                 CASE
  190.                     WHEN cv.NCOVER NOT IN (6,800,900,2) AND pol.NPRODUCT NOT IN (904, 910) THEN 0  -- 0 A LOS ADICIONALES
  191.                     WHEN pol.NPRODUCT = 248 OR pol.NPRODUCT = 48 OR pol.NPRODUCT = 49 THEN cv.NCAPITAL_INSU ELSE pol.NAMOUNT_LOAN
  192.                 END AS "Monto_Prestamo",
  193.                 CASE
  194.                     WHEN cv.NCOVER NOT IN (6,800,900,2) AND pol.NPRODUCT NOT IN (904, 910) THEN 0 -- 0 A LOS ADICIONALES
  195.                     ELSE pol.NINT_CREDIT
  196.                 END AS "Tasa_Interes_Prestamo",
  197.                 0 AS "Bono",
  198.                 0 AS "Renta",
  199.                 0 AS "Numero_Rentas",
  200.                 CASE
  201.                     WHEN pol.NWARMINIT IS NULL THEN 0 ELSE pol.NWARMINIT
  202.                 END AS "Tasa_Interes_Inversion_Gold",
  203.                 'Segmento' AS "Segmento_Resultados_Adicional",
  204.                 'Parametros' AS "Archivo_Parametros",
  205.                 pol.NCURRENCY AS "Tipo_Moneda",
  206.                 0 AS "Aplica_Recargo",
  207.                 0 AS "Porc_Recargo",
  208.                 cvc.FACTOR_RECARGO_ADITIVO AS "Factor_RA",
  209.                 cvc.FACTOR_RECARGO_MULTIPLICATIVO AS "Factor_RM",
  210.                 pol.NMONTHS_INTERMED AS "Antiguedad_Agente",
  211.                 CASE
  212.                     WHEN pol.NGRACE_PERIOD IS NULL THEN 0 ELSE pol.NGRACE_PERIOD
  213.                 END AS NGRACE_PERIOD,
  214.                 0 AS "NAGENCY",
  215.                 pol.SSELLCHANNEL_AGENCIES
  216.         FROM INSUDB.COV_VIL900 cv
  217.         INNER JOIN INSUDB.COV_VIL900_CENSO cvc
  218.             ON  cv.SCERTYPE =cvc.SCERTYPE
  219.             AND cv.NBRANCH =cvc.NBRANCH
  220.             AND cv.NPRODUCT =cvc.NPRODUCT
  221.             AND cv.NPOLICY =cvc.NPOLICY
  222.             AND cv.NCERTIF =cvc.NCERTIF
  223.             AND cv.NMODULEC =cvc.NMODULEC
  224.             AND cv.NCOVER =cvc.NCOVER
  225.             AND cv.SCLIENT =cvc.SCLIENT
  226.             AND cv.NYEARMONTH =cvc.NYEARMONTH
  227.         INNER JOIN INSUDB.ROL_VIL900 rv
  228.             ON  cv.SCERTYPE =rv.SCERTYPE
  229.             AND cv.NBRANCH =rv.NBRANCH
  230.             AND cv.NPRODUCT =rv.NPRODUCT
  231.             AND cv.NPOLICY =rv.NPOLICY
  232.             AND cv.NCERTIF =rv.NCERTIF
  233.             AND cv.SCLIENT =rv.SCLIENT
  234.             AND cv.NYEARMONTH =rv.NYEARMONTH
  235.             AND cv.NROLE =rv.NROLE
  236.         INNER JOIN (SELECT
  237.                             pl.NPOLICY,  
  238.                             pl.SCERTYPE,
  239.                             pl.NCERTIF,
  240.                             pl.NYEARMONTH,
  241.                             pl.NPRODUCT,
  242.                             pl.NBRANCH,
  243.                             pl.NPAYFREQ,
  244.                             pl.DSTARTDATE,
  245.                             pl.NOPTION,
  246.                             pl.NWARMINIT,
  247.                             pl.NAMOUNTDEP,
  248.                             plc.REC_ACUMULADA,
  249.                             pl.NAMOUNT_RESC,
  250.                             pl.VALOR_POLIZA_P,
  251.                             pl.VALOR_POLIZA_A,
  252.                             pl.NAMOUNT_LOAN,
  253.                             pl.NINT_CREDIT,
  254.                             pl.NCURRENCY,
  255.                             pl.NMONTHS_INTERMED,
  256.                             pl.NGRACE_PERIOD,
  257.                             plc.SSELLCHANNEL_AGENCIES,
  258.                             pl.NTYPEINVEST,
  259.                             pl.SSELLCHANNEL,
  260.                             pl.DDATE_ORIGI,
  261.                             pl.DEXPIRDAT
  262.                             FROM
  263.                                 INSUDB.POL_VIL900 PL
  264.                                 INNER JOIN INSUDB.POL_VIL900_CENSO plc
  265.                                 ON pl.NPOLICY = plc.NPOLICY
  266.                                 AND pl.SCERTYPE = plc.SCERTYPE
  267.                                 AND pl.NBRANCH = plc.NBRANCH
  268.                                 AND pl.NPRODUCT = plc.NPRODUCT
  269.                                 AND pl.NCERTIF = plc.NCERTIF
  270.                                 AND pl.DRESPERDATE =plc.DRESPERDATE
  271.                                 AND pl.NYEARMONTH =plc.NYEARMONTH
  272.                             WHERE
  273.                                 pl.SSITUATION_H = 'V'
  274.                                 AND (pl.DNULLDATE IS NULL OR pl.DNULLDATE >= TO_DATE('01/05/2021','DD/MM/YYYY'))
  275.                                 AND pl.NBRANCH IN (1, 6)
  276.                                 AND pl.SCERTYPE =2
  277.                                 AND pl.NPRODUCT <> 750
  278.                                 AND pl.NYEARMONTH = 202105
  279.                                 AND pl.NPRODUCT IN (904,290,291,336,360,380,600,650,801, 294, 910)
  280.                                 AND EXTRACT(YEAR FROM pl.DDATE_ORIGI) = 2021
  281.                                 AND EXTRACT(MONTH FROM pl.DDATE_ORIGI) = 5) pol            
  282.             ON  cv.SCERTYPE = pol.SCERTYPE
  283.             AND cv.NBRANCH = pol.NBRANCH
  284.             AND cv.NPRODUCT = pol.NPRODUCT
  285.             AND cv.NPOLICY = pol.NPOLICY
  286.             AND cv.NCERTIF = pol.NCERTIF
  287.             AND cv.NYEARMONTH = pol.NYEARMONTH) inp
  288.  
  289.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement