Ir para conteúdo
Fórum Script Brasil
  • 0

Stuff SQL - Limitar a quantidade de concatenação no resultado da consulta


John Player

Pergunta

Prezados, boa tarde! Este é o meu primeiro post no fórum e queria tirar uma dúvida, a qual não achei nada similar na net....

Tenho a seguinte procedure:

 

BEGIN
            
    SET NOCOUNT ON;
        
    Select ba.co_base_arquivos as Base_Arquivo,
           sda.dt_evento as Data_Pagamento,
           sda.nu_pv_evento + ' - ' + ag.no_agencia as Agencia,
           sda.co_nis as NIS,
           sda.co_requerimento as Requerimento,
           sda.no_beneficiario as Nome,        
                                            
           'Parcela(s)' = Stuff(
             
             (Select distinct  ',' +  cast(sdb.nu_parcela as varchar) 
                          
             from [dbo].[adetb014_sitag_dados] sdb

             where ISNULL(sdb.co_nis, '') = ISNULL(sda.co_nis, '') 
             and ISNULL(sdb.co_requerimento, '') = ISNULL(sda.co_requerimento, '')
             and ISNULL(sdb.dt_evento, '') = ISNULL(sda.dt_evento, '')
             and ISNULL(sdb.nu_pv_evento, '') = ISNULL(sda.nu_pv_evento, '') 
                                                                         
             FOR XML PATH ('')) 
                          
             , 1,1 , ''),                 
                                                                           
             sum(sda.vr_evento) as Valor,
             pr.co_processo as Codigo_Processo
    
    From [dbo].[adetb006_processo] pr 
    inner join [dbo].[adetb012_elo] elo on
    pr.co_processo = elo.co_processo 
    inner join [dbo].[adetb013_pesquisa_sitag] ps on
    elo.co_elo = ps.co_elo 
    inner join [dbo].[adetb014_sitag_dados] sda on
    ps.co_consulta = sda.co_consulta 
    inner join [dbo].[icotb005_agencia] ag on
    sda.nu_pv_evento = ag.co_agencia 
    inner join [dbo].[icotb002_municipio] mu on
    ag.co_ibge = mu.co_ibge 
    inner join [dbo].[icotb003_uf] uf on
    mu.co_uf = uf.co_uf 
    inner join [dbo].[icotb010_base_arquivos] ba on
    uf.co_base_arquivos = ba.co_base_arquivos 

    where sda.co_canal = 'EF' and sda.co_tipo_cartao = 0 

    group by  ba.co_base_arquivos, 
              sda.dt_evento,    
              sda.nu_pv_evento,
              ag.no_agencia,
              sda.co_nis, 
              sda.co_requerimento,
              sda.no_beneficiario,                                                      
              pr.co_processo
            
    order by sda.co_nis 
    
END

Que me gera o seguinte resultado:

Base_Arquivo    Data_Pagamento    Agencia                             NIS              Requerimento                  Nome                    Parcela(s)    Valor    Codigo_Processo

GO                      2014-02-28      0764 - BACABAL, MA       12345678912   13030466352         JOSE DA SILVA                1,2,5,6    3009.26       142

 

O que eu preciso é que na coluna parcela(s) agrupe até 3 parcelas, no caso 1, 2, 5 em ordem crescente e some o valor apenas desta 3 parcelas

E que a parcela 6 apareça em outro registro com o valor somente da sua parcela, ficando o resultado abaixo:

 

Base_Arquivo    Data_Pagamento    Agencia                             NIS              Requerimento                  Nome                    Parcela(s)    Valor    Codigo_Processo

GO                      2014-02-28      0764 - BACABAL, MA       12345678912   13030466352         JOSE DA SILVA                1,2,5    2009.26       142

GO                      2014-02-28      0764 - BACABAL, MA       12345678912   13030466352         JOSE DA SILVA                    6      1000,00       142

 

Tem como fazer isto?

 

Muito Obrigado a todos!

 

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...