Usuário com melhor resposta
Como concaterna o resultado de uma select em uma única linha ???????

Pergunta
-
Não sei se o assunto ficou claro, mas seria isso, imagine que eu tenho dados do cabeçalho da nota fiscal e também tenho os detalhes que são os itens dessa nota, o problema está no fato que eu tenho que mostrar também detalhes dos defeitos apresentados nessa nota e geralmente são mais de um na verdade vão ter vários defeitos.
No meu relatorio eu não consigo mostrar mais de um detalhe, dai eu pensei em algo do tipo criar uma função que pudesse a cada registro de defeitos concatenar e retorna um unico registro.
o meu select ficar algo assim:
select notaifscal, codigo_item,
(select top 1 (funcaoRetornoDefeitos(ukey_defeito) )) as defeitos
from Nota
o resultado seria :
Nota Item Defeitos
123456 ABC Defeito 1, Defeito 2, Defeito 3, Defeito 4
123456 ACD NULL
Não sei se conseguir deixar claro....
Mas agradeço caso alguém puder ajudar,
Att,
Adriano
Respostas
-
Olá Adriano,
Veja este exemplo:
Code Snippetcreate
function funcaoRetornoDefeitos (@ukey_defeito int)returns
varchar (500)as
begin
declare @ret varchar (500) select @ret = '' select @ret = @ret + Defeito + ', ' from itensDefeito where ukey_defeito = @ukey_defeito return left (@ret, len (@ret) - 2)end
Apenas adapte a sua situação.
Abraço
Todas as Respostas
-
Olá Adriano,
Veja este exemplo:
Code Snippetcreate
function funcaoRetornoDefeitos (@ukey_defeito int)returns
varchar (500)as
begin
declare @ret varchar (500) select @ret = '' select @ret = @ret + Defeito + ', ' from itensDefeito where ukey_defeito = @ukey_defeito return left (@ret, len (@ret) - 2)end
Apenas adapte a sua situação.
Abraço
-
Grande Alexandre VM,
Fiz a devida alteração e blz funcionou , e até já consegui usar dessa forma :
SELECT DBO.FUNCAORETORNODEFEITOS('abcd')
Num entendi como retornar em uma única linha todos os defeitos, no meu relatorio eu imaginei criar um único campo com 500 posições.
Porque o que eu não quero é ter que ter vários uma coluna com vários defeitos, caso eu faça o join com a tabela de defeitos.
Num sei se conseguir ser claro. :-<
Caso tiver alguam idéias agradeço,
Abs
Adriano
-
Alexandre, consegui adpatar esse código da seguinte forma ao invés de passar a ukey do defeito,
eu fiz o seguinte passei a ukey da nota fiscal, pois eu tenho essa informação, pois como disse essa nota tem vários defeitos, dai beleza funcionou como eu pretendia, graças ao teu código e a tua ajuda,
Abraços,
Adriano_SP
-