Bom dia pessoal estou com um probleminha e não estou conseguindo resolver se puderem me ajudar.
Bom tenho um relatório no Ireport que possui a seguinte consulta SQL:
WITH Tabela AS (
SELECT dbo.f_imovel.nome AS nomeImovel, dbo.f_cartorioimovel.livro, dbo.f_cartorioimovel.folha, dbo.f_cartorioimovel.numero, dbo.f_cartorioimovel.cartorio, dbo.f_cartorioimovel.fkMunicipio, dbo.f_municipio.pkmunicipio, dbo.f_municipio.nome + '/' + dbo.f_estado.uf AS comarca,
CAST(('Matricula(s) n.º ' + CAST(dbo.f_cartorioimovel.numero AS VARCHAR(100)) + ', folhas n.º ' + CAST(dbo.f_cartorioimovel.folha AS VARCHAR(100)) + ', Livro n.º ' + CAST(dbo.f_cartorioimovel.livro AS VARCHAR(1000)) + ', do ' + dbo.f_cartorioimovel.cartorio + ', da Comarca de ' + dbo.f_municipio.nome + '/' + dbo.f_estado.uf + ', ' ) AS VARCHAR(MAX)) AS Texto
FROM dbo.f_cartorioimovel
INNER JOIN dbo.f_licenca
INNER JOIN dbo.f_processo ON dbo.f_licenca.fkprocesso = dbo.f_processo.pkProcesso
INNER JOIN dbo.f_pessoaprocesso ON dbo.f_processo.pkProcesso = dbo.f_pessoaprocesso.fkProcesso
INNER JOIN dbo.f_papel ON dbo.f_pessoaprocesso.fkPapel = dbo.f_papel.pkPapel
INNER JOIN dbo.f_pessoa ON dbo.f_pessoaprocesso.fkPessoa = dbo.f_pessoa.pkpessoa
INNER JOIN dbo.f_empreendimentoimovel ON dbo.f_processo.fkEmpreendimento = dbo.f_empreendimentoimovel.fkEmpreendimento
INNER JOIN dbo.f_imovel ON dbo.f_empreendimentoimovel.fkImovel = dbo.f_imovel.pkimovel ON dbo.f_cartorioimovel.fkImovel = dbo.f_imovel.pkimovel
INNER JOIN dbo.f_estado
INNER JOIN dbo.f_municipio ON dbo.f_estado.pkestado = dbo.f_municipio.fkestado ON dbo.f_cartorioimovel.fkMunicipio = dbo.f_municipio.pkmunicipio
WHERE (dbo.f_licenca.pkLicenca = $P{pkLicenca}) AND (dbo.f_papel.nome = 'REQUERENTE')
)
SELECT TOP (1) REPLACE (REPLACE(REPLACE((SELECT Texto FROM Tabela FOR XML PATH ('')) + '', ',,', ''), '<texto>', ''), '</texto>', '') AS Texto, CAST(dbo.f_licenca.numero AS varchar) + '/' + CAST(YEAR(dbo.f_licenca.dataExpedicao) AS varchar) AS numeroLicenca, dbo.f_licenca.dataExpedicao,
CONVERT(DATETIME, dbo.f_licenca.dataValidade, 103) AS dataValidade, dbo.f_licenca.observacoes, dbo.f_licenca.numeroProcesso,
dbo.f_papel.nome AS papelPessoa, dbo.f_pessoa.tipo, dbo.f_pessoa.cpf, dbo.f_pessoa.nome, dbo.f_pessoa.cnpj, dbo.f_pessoa.razaosocial,
dbo.f_pessoa.tipologradouro, dbo.f_pessoa.nomelogradouro, dbo.f_pessoa.numero AS numeroEndereco, dbo.f_pessoa.bairro, dbo.f_pessoa.complemento,
dbo.f_pessoa.cidade AS municipioPessoa, dbo.f_imovel.nome AS nomeImovel, dbo.f_imovel.areatotal AS areaTotalGeorref,
dbo.f_municipio.nome + '/' + dbo.f_estado.uf AS municipioImovel, dbo.f_cartorioimovel.livro, dbo.f_cartorioimovel.folha, dbo.f_cartorioimovel.numero,
dbo.f_cartorioimovel.cartorio, dbo.f_cartorioimovel.areaTotalDocumentada
FROM dbo.f_licenca INNER JOIN
dbo.f_processo ON dbo.f_licenca.fkprocesso = dbo.f_processo.pkProcesso INNER JOIN
dbo.f_pessoaprocesso ON dbo.f_processo.pkProcesso = dbo.f_pessoaprocesso.fkProcesso INNER JOIN
dbo.f_papel ON dbo.f_pessoaprocesso.fkPapel = dbo.f_papel.pkPapel INNER JOIN
dbo.f_pessoa ON dbo.f_pessoaprocesso.fkPessoa = dbo.f_pessoa.pkpessoa INNER JOIN
dbo.f_empreendimentoimovel ON dbo.f_processo.fkEmpreendimento = dbo.f_empreendimentoimovel.fkEmpreendimento INNER JOIN
dbo.f_imovel ON dbo.f_empreendimentoimovel.fkImovel = dbo.f_imovel.pkimovel INNER JOIN
dbo.f_municipio ON dbo.f_imovel.fkmunicipio = dbo.f_municipio.pkmunicipio INNER JOIN
dbo.f_estado ON dbo.f_municipio.fkestado = dbo.f_estado.pkestado INNER JOIN
dbo.f_cartorioimovel ON dbo.f_imovel.pkimovel = dbo.f_cartorioimovel.fkImovel
WHERE (dbo.f_licenca.pkLicenca = $P{pkLicenca}) AND (dbo.f_papel.nome = 'REQUERENTE')
até ai tudo bem, quando chamo no meu relatório o campo Texto em algum textfield ele me gera o seguinte resultado:
Matricula(s) n.º 211.662, folhas n.º 01-04, Livro n.º 02, do CARTORIO DE PROTESTOS DE AQUIDAUNA, da Comarca de AQUIDAUANA/MS,
Matricula(s) n.º 5854, folhas n.º 045, Livro n.º 984, do CARTORIO DE HIPOTECAS DA 2A CIRCUNSCRIÇÃO, da Comarca de MIRANDA/MS,
Matricula(s) n.º 34234, folhas n.º 23423, Livro n.º 234324, do CARTORIO DE HIPOTECAS DA 2A CIRCUNSCRIÇÃO, da Comarca de MIRANDA/MS,
o problema é que preciso que se um dos itens for do mesmo cartório e da mesma comarca/uf saia da seguinte forma:
Matricula(s) n.º 211.662, folhas n.º 01-04, Livro n.º 02, do CARTORIO DE PROTESTOS DE AQUIDAUNA, da Comarca de AQUIDAUANA/MS,
Matricula(s) n.º 5854, folhas n.º 045, Livro n.º 984, Matricula(s) n.º 34234, folhas n.º 23423, Livro n.º 234324,
do CARTORIO DE HIPOTECAS DA 2A CIRCUNSCRIÇÃO, da Comarca de MIRANDA/MS,
não repetindo assim a comarca/uf novamente.
Obrigado pela atenção!