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
Pergunta
John Player
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
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.