none
como concatenar el resultado de varias filas en una sola colunma en el siguiente query RRS feed

  • Pregunta

  • ALTER PROCEDURE [dbo].[UspGet_ReclamoSalud]
    --EXECUTE UspGet_ReclamoSalud  0,'',0,0,0,'2016/01/01','2016/10/31',0,0,15,1,0,0
    (
    @IdCompania INT,
    @Asegurado VARCHAR(150),
    @IdRamo INT,
    @IdTipoRamoPoliza INT,
    @IdEstatus INT,
    @FechaDesde DATETIME,
    @FechaHasta DATETIME,
    @IdAjustador INT,
    @IdSucursal INT,
    @IdEmpresa INT,
    @AplicaSucursal INT,
    @IdEntidadImprimir INT,
    @IdEntidadSucursal INT
    )
    AS
    IF (@AplicaSucursal = 0)
    BEGIN

    IF (@IdCompania = 0)
    BEGIN 
    SELECT @IdCompania = NULL
    END
    IF (@Asegurado = '')
    BEGIN
    SELECT @Asegurado = NULL
    END
    IF (@IdRamo = 0)
    BEGIN 
    SELECT @IdRamo = NULL
    END 
    IF (@IdTipoRamoPoliza = 0)
    BEGIN 
    SELECT @IdTipoRamoPoliza = NULL
    END
    IF (@IdEstatus = 0)
    BEGIN 
    SELECT @IdEstatus = NULL
    END

    BEGIN
    SELECT   dbo.Tbl_Entidades.Asegurado, 
    (SELECT SUM(MontoCheque)
    FROM Tbl_SiniestrosPagos AS SiniestrosPagos
    WHERE SiniestrosPagos.IdSiniestro = Tbl_Siniestros.IdSiniestro) AS MontoCheque,

    (SELECT SUM(MontoReclamado)
    FROM Tbl_Siniestros AS Siniestros
    WHERE Siniestros.IdSiniestro = Tbl_Siniestros.IdSiniestro) AS MontoReclamado,
    Tbl_Entidades_1.Asegurado AS Analista,
    dbo.Tbl_Entidades.Cedula,
    dbo.Tbl_Polizas.NroPoliza, 
    Tbl_Ramos.IdRamo,
    Tbl_Ramos.Ramo,
    Tbl_Siniestros.FechaNotificacion,
    dbo.Tbl_Siniestros.NumeroSiniestroInt,
    Tbl_Siniestros.Diagnostico,
    ISNULL(Tbl_PolizasCertificados_1.NroCertificado,'') AS NroCertificado,
                 dbo.Tbl_CompaniasSeguro.NombreCorto, 
    dbo.Tbl_Siniestros.FechaOcurrencia, 
    dbo.VwEstatusSiniestrosNew.Estatus, 
    dbo.Tbl_Entidades.Rif,
    dbo.Tbl_Siniestros.IdCertificado,

     (SELECT        TOP (1) FechaRecibido
                         FROM            dbo.Tbl_SiniestrosDocumentosSoilicitados
     WHERE        (IdSiniestro = dbo.Tbl_Siniestros.IdSiniestro)
                                   ORDER BY FechaRecibido DESC) AS FechaUltimoDocumento, 

    CASE WHEN dbo.Tbl_Siniestros.IdFamiliar <> 0 
    THEN LTRIM(RTRIM(ISNULL(Tbl_PolizasFamiliares.NombreI, '')                          
    + ' ' + ISNULL(Tbl_PolizasFamiliares.NombreII, '') + ' ' + 
    ISNULL(Tbl_PolizasFamiliares.ApellidoI, '') + ' ' + 
    ISNULL(Tbl_PolizasFamiliares.ApellidoII, ''))) 
    ELSE '' END AS Familiar_Afectado,

    LTRIM(RTRIM(ISNULL(Tbl_PolizasCertificados_1.NombreI, '') + 
    ' ' + ISNULL(Tbl_PolizasCertificados_1.NombreII, '') + ' ' 
    + ISNULL(Tbl_PolizasCertificados_1.ApellidoI, '') 
                + ' ' + ISNULL(Tbl_PolizasCertificados_1.ApellidoII, ''))) AS NombreCertificado


    FROM         dbo.Tbl_Polizas INNER JOIN
                             dbo.Tbl_Ramos ON dbo.Tbl_Polizas.IdRamo = dbo.Tbl_Ramos.IdRamo INNER JOIN
                             dbo.Tbl_Siniestros ON dbo.Tbl_Polizas.IdPoliza = dbo.Tbl_Siniestros.IdPoliza INNER JOIN
                             dbo.Tbl_Entidades ON dbo.Tbl_Polizas.IdEntidadAsegurado = dbo.Tbl_Entidades.IdEntidad INNER JOIN
                             dbo.VwEstatusSiniestrosNew ON dbo.Tbl_Siniestros.IdEstatus = dbo.VwEstatusSiniestrosNew.IdEstatus INNER JOIN
                             dbo.Tbl_CompaniasSeguro ON dbo.Tbl_Polizas.IdCompania = dbo.Tbl_CompaniasSeguro.IdCompania LEFT OUTER JOIN
                             dbo.Tbl_PolizasCertificados AS Tbl_PolizasCertificados_1 ON dbo.Tbl_Siniestros.IdCertificado = Tbl_PolizasCertificados_1.IdCertificado INNER JOIN
                             dbo.VwGetTipoRamoPoliza ON dbo.Tbl_Ramos.IdTipoRamoPoliza = dbo.VwGetTipoRamoPoliza.IdTipoRamoPoliza LEFT OUTER JOIN
                             dbo.Tbl_PolizasFamiliares ON dbo.Tbl_Siniestros.IdFamiliar = dbo.Tbl_PolizasFamiliares.IdFamiliar LEFT OUTER JOIN
                             dbo.Tbl_Entidades AS Tbl_Entidades_1 ON dbo.Tbl_Polizas.IdEntidadOperador = Tbl_Entidades_1.IdEntidad

    WHERE   (dbo.Tbl_Ramos.IdTipoRamoPoliza = 1) or (dbo.Tbl_Ramos.IdTipoRamoPoliza = 9) or (dbo.Tbl_Ramos.IdTipoRamoPoliza = 10)
    AND   Tbl_Polizas.IdCompania = ISNULL(@IdCompania,Tbl_Polizas.IdCompania)
    AND  Tbl_Polizas.IdEmpresa = @IdEmpresa 
    AND   Tbl_Entidades.Asegurado LIKE + '%' + ISNULL(@Asegurado,'') + '%' 
    AND   Tbl_Ramos.IdRamo = ISNULL(@IdRamo,Tbl_Siniestros.IdRamo)
    AND   Tbl_Ramos.IdTipoRamoPoliza = ISNULL(@IdTipoRamoPoliza,Tbl_Ramos.IdTipoRamoPoliza)
    AND   Tbl_Siniestros.IdEstatus = ISNULL(@IdEstatus,Tbl_Siniestros.IdEstatus)
    AND   Tbl_Siniestros.FechaNotificacion BETWEEN CAST(@FechaDesde AS DATE) AND CAST(@FechaHasta AS DATE)
    END 
    END

    ------ Cuando Aplican las Sucursales a uan compania se utuliza este query
     ELSE
    BEGIN
    IF (@IdCompania = 0)
    BEGIN 
    SELECT @IdCompania = NULL
    END
    IF (@Asegurado = '')
    BEGIN
    SELECT @Asegurado = NULL
    END
    IF (@IdRamo = 0)
    BEGIN 
    SELECT @IdRamo = NULL
    END 
    IF (@IdTipoRamoPoliza = 0)
    BEGIN 
    SELECT @IdTipoRamoPoliza = NULL
    END
    IF (@IdEstatus = 0)
    BEGIN 
    SELECT @IdEstatus = NULL
    END
    IF (@IdSucursal=0)
    BEGIN 
    SELECT @IdEntidadSucursal =  IdSucursal 
    From Tbl_EntidadesSucursal 
    WHERE Tbl_EntidadesSucursal.IdEntidad = @IdEntidadImprimir
    FOR 
    XML PATH('')
    END
    IF (@IdSucursal<> 0)
    BEGIN
    SELECT @IdEntidadSucursal = @IdSucursal
    END
    BEGIN
    SELECT   dbo.Tbl_Entidades.Asegurado, 
    (SELECT SUM(MontoCheque)
    FROM Tbl_SiniestrosPagos AS SiniestrosPagos
    WHERE SiniestrosPagos.IdSiniestro = Tbl_Siniestros.IdSiniestro) AS MontoCheque,

    (SELECT SUM(MontoReclamado)
    FROM Tbl_Siniestros AS Siniestros
    WHERE Siniestros.IdSiniestro = Tbl_Siniestros.IdSiniestro) AS MontoReclamado,
    Analista.Asegurado AS Analista, 
    dbo.Tbl_Entidades.Cedula,
    dbo.Tbl_Polizas.NroPoliza, 
    Tbl_Ramos.IdRamo,
    Tbl_Ramos.Ramo,
    Tbl_Siniestros.FechaNotificacion,
    dbo.Tbl_Siniestros.NumeroSiniestroInt,
    Tbl_Siniestros.Diagnostico,
    ISNULL(Tbl_PolizasCertificados_1.NroCertificado,'') AS NroCertificado,
                 dbo.Tbl_CompaniasSeguro.NombreCorto, 
    dbo.Tbl_Siniestros.FechaOcurrencia, 
    dbo.VwEstatusSiniestrosNew.Estatus, 
    dbo.Tbl_Entidades.Rif,
    dbo.Tbl_Siniestros.IdCertificado,

     (SELECT        TOP (1) FechaRecibido
                         FROM            dbo.Tbl_SiniestrosDocumentosSoilicitados
     WHERE        (IdSiniestro = dbo.Tbl_Siniestros.IdSiniestro)
                                   ORDER BY FechaRecibido DESC) AS FechaUltimoDocumento, 

    CASE WHEN dbo.Tbl_Siniestros.IdFamiliar <> 0 
    THEN LTRIM(RTRIM(ISNULL(Tbl_PolizasFamiliares.NombreI, '')                          
    + ' ' + ISNULL(Tbl_PolizasFamiliares.NombreII, '') + ' ' + 
    ISNULL(Tbl_PolizasFamiliares.ApellidoI, '') + ' ' + 
    ISNULL(Tbl_PolizasFamiliares.ApellidoII, ''))) 
    ELSE '' END AS Familiar_Afectado,

    LTRIM(RTRIM(ISNULL(Tbl_PolizasCertificados_1.NombreI, '') + 
    ' ' + ISNULL(Tbl_PolizasCertificados_1.NombreII, '') + ' ' 
    + ISNULL(Tbl_PolizasCertificados_1.ApellidoI, '') 
                + ' ' + ISNULL(Tbl_PolizasCertificados_1.ApellidoII, ''))) AS NombreCertificado,
    ISNULL(dbo.VwGetAjustador.Ajustador,'') AS Ajustador,
    ISNULL(dbo.VwGetAjustador.IdEntidadAjustador,0) AS IdEntidadAjustador,
    ISNULL(Tbl_Sucursal.NombreSucursal,'') AS NombreSucursal,
    ISNULL(Tbl_Sucursal.IdSucursal,0) AS IdSurcursal


    FROM         dbo.Tbl_Sucursal INNER JOIN
                             dbo.Tbl_EntidadesSucursal ON dbo.Tbl_Sucursal.IdSucursal = dbo.Tbl_EntidadesSucursal.IdSucursal RIGHT OUTER JOIN
                             dbo.Tbl_Polizas INNER JOIN
                             dbo.Tbl_Ramos ON dbo.Tbl_Polizas.IdRamo = dbo.Tbl_Ramos.IdRamo INNER JOIN
                             dbo.Tbl_Siniestros ON dbo.Tbl_Polizas.IdPoliza = dbo.Tbl_Siniestros.IdPoliza INNER JOIN
                             dbo.Tbl_Entidades ON dbo.Tbl_Polizas.IdEntidadAsegurado = dbo.Tbl_Entidades.IdEntidad INNER JOIN
                             dbo.VwEstatusSiniestrosNew ON dbo.Tbl_Siniestros.IdEstatus = dbo.VwEstatusSiniestrosNew.IdEstatus INNER JOIN
                             dbo.Tbl_CompaniasSeguro ON dbo.Tbl_Polizas.IdCompania = dbo.Tbl_CompaniasSeguro.IdCompania LEFT OUTER JOIN
                             dbo.Tbl_PolizasCertificados AS Tbl_PolizasCertificados_1 ON dbo.Tbl_Siniestros.IdCertificado = Tbl_PolizasCertificados_1.IdCertificado INNER JOIN
                             dbo.VwGetTipoRamoPoliza ON dbo.Tbl_Ramos.IdTipoRamoPoliza = dbo.VwGetTipoRamoPoliza.IdTipoRamoPoliza ON dbo.Tbl_EntidadesSucursal.IdEntidad = dbo.Tbl_Entidades.IdEntidad LEFT OUTER JOIN
                             dbo.Tbl_Entidades AS Analista ON dbo.Tbl_Polizas.IdEntidadOperador = Analista.IdEntidad LEFT OUTER JOIN
                             dbo.VwGetAjustador ON dbo.Tbl_Siniestros.IdEntidadAjustador = dbo.VwGetAjustador.IdEntidadAjustador LEFT OUTER JOIN
                             dbo.Tbl_PolizasFamiliares ON dbo.Tbl_Siniestros.IdFamiliar = dbo.Tbl_PolizasFamiliares.IdFamiliar


    WHERE        (dbo.Tbl_Ramos.IdTipoRamoPoliza = 1) OR (dbo.Tbl_Ramos.IdTipoRamoPoliza = 9) OR (dbo.Tbl_Ramos.IdTipoRamoPoliza = 10)
    AND   Tbl_Polizas.IdCompania = ISNULL(@IdCompania,Tbl_Polizas.IdCompania)
    AND  Tbl_Polizas.IdEmpresa = @IdEmpresa 
    AND   Tbl_Entidades.Asegurado LIKE + '%' + ISNULL(@Asegurado,'') + '%' 
    AND   Tbl_Ramos.IdRamo = ISNULL(@IdRamo,Tbl_Siniestros.IdRamo)
    AND   Tbl_Ramos.IdTipoRamoPoliza = ISNULL(@IdTipoRamoPoliza,Tbl_Ramos.IdTipoRamoPoliza)
    AND   Tbl_Siniestros.IdEstatus = ISNULL(@IdEstatus,Tbl_Siniestros.IdEstatus)
    AND   Tbl_Siniestros.FechaNotificacion BETWEEN CAST(@FechaDesde AS DATE) AND CAST(@FechaHasta AS DATE)
    AND  ISNULL(VwGetAjustador.IdEntidadAjustador,0) = CASE WHEN ISNULL(@IdAjustador,0)=0 THEN ISNULL(VwGetAjustador.IdEntidadAjustador,0) ELSE ISNULL(@IdAjustador,0) END
    AND  ISNULL(Tbl_Sucursal.IdSucursal,0) = CASE WHEN ISNULL(@IdEntidadSucursal,0)=0 THEN ISNULL(Tbl_Sucursal.IdSucursal,0) ELSE ISNULL(@IdEntidadSucursal,0) END 

    END
    END

    lo que necesito es lo siguiente cuando reciba el parametro @IdEntidadImprimir con el mismo voy a hacer el select a esta tabla 

    Tbl_EntidadesSucursal en el cual como condicon va a ser que el idEntidadImprimir que esta recibiendo el Store procedure 

    se encuentre en la tabla pero ese idEntidadImprimir puede tener muchas Sucursales y en la variable que le asigno esas sucursales necesito que obtenga todas la sucursales para esa entidad me dijieron que lo hiciera con un For Xml Path pero no se como utilizarlo

     

    felipe borgs

    lunes, 24 de octubre de 2016 11:53

Respuestas