dbo.LN_scores

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

4
Name Data Type Length Description
@p_cliente int 4
@p_contraparte int 4
@p_clave_indicador varchar 50
@p_minimo_dias int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
/*

exec ln_scores null,null,'SCORE_bal'

*/

-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_scores
 -- Add the parameters for the stored procedure here
 @p_cliente       int = null,
 @p_contraparte      int = null,
 @p_clave_indicador     varchar(50) = null,
 @p_minimo_dias      int = 0
 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here

 if(@p_contraparte is null) begin

  if(@p_cliente is null AND @p_clave_indicador is null)

   select LN_contrapartes.contraparte, padrones.nombre_persona, padrones.identificacion, padrones.id_padron,
     identificadores.identificador, identificadores.country_code, identificadores.abreviatura,
     country.country_name, LN_indicadores.nombre_indicador, LN_indicadores.clave_indicador, LN_indicadores.indicador,
     LN_contraparte_indicadores.valor_numerico as score, LN_contrapartes.cliente, clientes.nombre_cliente,
     isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created) as ultima_actualizacion,
     datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) as dias_ultima_actualizacion

   from LN_contrapartes inner join clientes on LN_contrapartes.cliente = clientes.cliente
   inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
   inner join identificadores on padrones.identificador = identificadores.identificador
   inner join country on identificadores.country_code = country.country_code
   inner join (
    select contraparte, MAX(gestion) as gestion
    from LN_gestiones
    where desde <= GETDATE()
    and hasta >= GETDATE()
    group by contraparte) gestiones on LN_contrapartes.contraparte = gestiones.contraparte
   inner join LN_contraparte_indicadores ON
    (LN_contrapartes.contraparte = LN_contraparte_indicadores.contraparte AND
     gestiones.gestion = LN_contraparte_indicadores.gestion)
   inner join LN_indicadores ON LN_contraparte_indicadores.indicador = LN_indicadores.indicador
   inner join LN_familia_productos on LN_indicadores.producto = LN_familia_productos.producto
   inner join LN_contraparte_familias on 
    (LN_familia_productos.familia = LN_contraparte_familias.familia 
    and LN_contrapartes.contraparte = LN_contraparte_familias.contraparte)
    
   where LN_indicadores.clave_indicador like 'SCORE%'
   and datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) > @p_minimo_dias
   order by LN_contrapartes.contraparte, LN_indicadores.clave_indicador

  else

   if(@p_cliente is not null AND @p_clave_indicador is null)

    select LN_contrapartes.contraparte, padrones.nombre_persona, padrones.identificacion, padrones.id_padron,
      identificadores.identificador, identificadores.country_code, identificadores.abreviatura,
      country.country_name, LN_indicadores.nombre_indicador, LN_indicadores.clave_indicador, LN_indicadores.indicador,
      LN_contraparte_indicadores.valor_numerico as score, LN_contrapartes.cliente, clientes.nombre_cliente,
      isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created) as ultima_actualizacion,
      datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) as dias_ultima_actualizacion

    from LN_contrapartes inner join clientes on LN_contrapartes.cliente = clientes.cliente
    inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
    inner join identificadores on padrones.identificador = identificadores.identificador
    inner join country on identificadores.country_code = country.country_code
    inner join (
     select contraparte, MAX(gestion) as gestion
     from LN_gestiones
     where desde <= GETDATE()
     and hasta >= GETDATE()
     group by contraparte) gestiones on LN_contrapartes.contraparte = gestiones.contraparte
    inner join LN_contraparte_indicadores ON
     (LN_contrapartes.contraparte = LN_contraparte_indicadores.contraparte AND
      gestiones.gestion = LN_contraparte_indicadores.gestion)
    inner join LN_indicadores ON LN_contraparte_indicadores.indicador = LN_indicadores.indicador
    inner join LN_familia_productos on LN_indicadores.producto = LN_familia_productos.producto
    inner join LN_contraparte_familias on 
     (LN_familia_productos.familia = LN_contraparte_familias.familia 
     and LN_contrapartes.contraparte = LN_contraparte_familias.contraparte)

    where LN_indicadores.clave_indicador like 'SCORE%'
    and datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) > @p_minimo_dias
    and LN_contrapartes.cliente = @p_cliente
    order by LN_contrapartes.contraparte, LN_indicadores.clave_indicador

   else

    if(@p_cliente is null AND @p_clave_indicador is not null)

     select LN_contrapartes.contraparte, padrones.nombre_persona, padrones.identificacion, padrones.id_padron,
       identificadores.identificador, identificadores.country_code, identificadores.abreviatura,
       country.country_name, LN_indicadores.nombre_indicador, LN_indicadores.clave_indicador, LN_indicadores.indicador,
       LN_contraparte_indicadores.valor_numerico as score, LN_contrapartes.cliente, clientes.nombre_cliente,
       isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created) as ultima_actualizacion,
       datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) as dias_ultima_actualizacion

     from LN_contrapartes inner join clientes on LN_contrapartes.cliente = clientes.cliente
     inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
     inner join identificadores on padrones.identificador = identificadores.identificador
     inner join country on identificadores.country_code = country.country_code
     inner join (
      select contraparte, MAX(gestion) as gestion
      from LN_gestiones
      where desde <= GETDATE()
      and hasta >= GETDATE()
      group by contraparte) gestiones on LN_contrapartes.contraparte = gestiones.contraparte
     inner join LN_contraparte_indicadores ON
      (LN_contrapartes.contraparte = LN_contraparte_indicadores.contraparte AND
       gestiones.gestion = LN_contraparte_indicadores.gestion)
     inner join LN_indicadores ON LN_contraparte_indicadores.indicador = LN_indicadores.indicador
     inner join LN_familia_productos on LN_indicadores.producto = LN_familia_productos.producto
     inner join LN_contraparte_familias on 
      (LN_familia_productos.familia = LN_contraparte_familias.familia 
      and LN_contrapartes.contraparte = LN_contraparte_familias.contraparte)

     where LN_indicadores.clave_indicador like 'SCORE%'
     and datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) > @p_minimo_dias
     and LN_indicadores.clave_indicador = @p_clave_indicador
     order by LN_contrapartes.contraparte, LN_indicadores.clave_indicador

    else

     select LN_contrapartes.contraparte, padrones.nombre_persona, padrones.identificacion, padrones.id_padron,
       identificadores.identificador, identificadores.country_code, identificadores.abreviatura,
       country.country_name, LN_indicadores.nombre_indicador, LN_indicadores.clave_indicador, LN_indicadores.indicador,
       LN_contraparte_indicadores.valor_numerico as score, LN_contrapartes.cliente, clientes.nombre_cliente,
       isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created) as ultima_actualizacion,
       datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) as dias_ultima_actualizacion

     from LN_contrapartes inner join clientes on LN_contrapartes.cliente = clientes.cliente
     inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
     inner join identificadores on padrones.identificador = identificadores.identificador
     inner join country on identificadores.country_code = country.country_code
     inner join (
      select contraparte, MAX(gestion) as gestion
      from LN_gestiones
      where desde <= GETDATE()
      and hasta >= GETDATE()
      group by contraparte) gestiones on LN_contrapartes.contraparte = gestiones.contraparte
     inner join LN_contraparte_indicadores ON
      (LN_contrapartes.contraparte = LN_contraparte_indicadores.contraparte AND
       gestiones.gestion = LN_contraparte_indicadores.gestion)
     inner join LN_indicadores ON LN_contraparte_indicadores.indicador = LN_indicadores.indicador
     inner join LN_familia_productos on LN_indicadores.producto = LN_familia_productos.producto
     inner join LN_contraparte_familias on 
      (LN_familia_productos.familia = LN_contraparte_familias.familia 
      and LN_contrapartes.contraparte = LN_contraparte_familias.contraparte)

     where LN_indicadores.clave_indicador like 'SCORE%'
     and datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) > @p_minimo_dias
     and LN_contrapartes.cliente = @p_cliente
     and LN_indicadores.clave_indicador = @p_clave_indicador
     order by LN_contrapartes.contraparte, LN_indicadores.clave_indicador

 end else begin

  if(@p_clave_indicador is null)

   select LN_contrapartes.contraparte, padrones.nombre_persona, padrones.identificacion, padrones.id_padron,
     identificadores.identificador, identificadores.country_code, identificadores.abreviatura,
     country.country_name, LN_indicadores.nombre_indicador, LN_indicadores.clave_indicador, LN_indicadores.indicador,
     LN_contraparte_indicadores.valor_numerico as score, LN_contrapartes.cliente, clientes.nombre_cliente,
     isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created) as ultima_actualizacion,
     datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) as dias_ultima_actualizacion

   from LN_contrapartes inner join clientes on LN_contrapartes.cliente = clientes.cliente
   inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
   inner join identificadores on padrones.identificador = identificadores.identificador
   inner join country on identificadores.country_code = country.country_code
   inner join (
    select contraparte, MAX(gestion) as gestion
    from LN_gestiones
    where desde <= GETDATE()
    and hasta >= GETDATE()
    group by contraparte) gestiones on LN_contrapartes.contraparte = gestiones.contraparte
   inner join LN_contraparte_indicadores ON
    (LN_contrapartes.contraparte = LN_contraparte_indicadores.contraparte AND
     gestiones.gestion = LN_contraparte_indicadores.gestion)
   inner join LN_indicadores ON LN_contraparte_indicadores.indicador = LN_indicadores.indicador
   inner join LN_familia_productos on LN_indicadores.producto = LN_familia_productos.producto
   inner join LN_contraparte_familias on 
    (LN_familia_productos.familia = LN_contraparte_familias.familia 
    and LN_contrapartes.contraparte = LN_contraparte_familias.contraparte)

   where LN_indicadores.clave_indicador like 'SCORE%'
   and LN_contrapartes.contraparte = @p_contraparte
   and datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) > @p_minimo_dias
   order by LN_contrapartes.contraparte, LN_indicadores.clave_indicador

  else

   select LN_contrapartes.contraparte, padrones.nombre_persona, padrones.identificacion, padrones.id_padron,
     identificadores.identificador, identificadores.country_code, identificadores.abreviatura,
     country.country_name, LN_indicadores.nombre_indicador, LN_indicadores.clave_indicador, LN_indicadores.indicador,
     LN_contraparte_indicadores.valor_numerico as score, LN_contrapartes.cliente, clientes.nombre_cliente,
     isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created) as ultima_actualizacion,
     datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) as dias_ultima_actualizacion

   from LN_contrapartes inner join clientes on LN_contrapartes.cliente = clientes.cliente
   inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
   inner join identificadores on padrones.identificador = identificadores.identificador
   inner join country on identificadores.country_code = country.country_code
   inner join (
    select contraparte, MAX(gestion) as gestion
    from LN_gestiones
    where desde <= GETDATE()
    and hasta >= GETDATE()
    group by contraparte) gestiones on LN_contrapartes.contraparte = gestiones.contraparte
   inner join LN_contraparte_indicadores ON
    (LN_contrapartes.contraparte = LN_contraparte_indicadores.contraparte AND
     gestiones.gestion = LN_contraparte_indicadores.gestion)
   inner join LN_indicadores ON LN_contraparte_indicadores.indicador = LN_indicadores.indicador
   inner join LN_familia_productos on LN_indicadores.producto = LN_familia_productos.producto
   inner join LN_contraparte_familias on 
    (LN_familia_productos.familia = LN_contraparte_familias.familia 
    and LN_contrapartes.contraparte = LN_contraparte_familias.contraparte)

   where LN_indicadores.clave_indicador like 'SCORE%'
   and LN_contrapartes.contraparte = @p_contraparte
   and LN_indicadores.clave_indicador = @p_clave_indicador
   and datediff(day, isnull(LN_contraparte_indicadores.modified, LN_contraparte_indicadores.created), getdate()) > @p_minimo_dias
   order by LN_contrapartes.contraparte, LN_indicadores.clave_indicador


 end


 
END
GO

Used By

No items found