Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiago M.

Concatenando linhas

Recommended Posts

Ola Pessoal

 

Estou fazendo uma consulta aki, onde obtenho como resultado no maximo tres registros, mas podem ser menos.

 

Então preciso que estes sejam mostrados numa mesma linha, separados por ;.

 

A consulta abaixo retorna, os materiais que satisfazem a condição.

 

 


SELECT
     material.`descricao`
FROM
     `material` material,
     `rel_objeto_material` rel_objeto_material,
     `objeto` objeto
WHERE
     material.id = rel_objeto_material.id
     and objeto.INVENTARIO = rel_objeto_material.INVENTARIO
     and objeto.INVENTARIO = $P{INVENTARIO};

O campo inventario é um parametro para esta consulta.

 

Uma possivel resposta é, sendo o número de registros variando de 0 a 3 :

 

latao

aço

bronze

 

Gostaria de obter uma resposta do tipo:

 

latao; aço; bronze

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT
     group_concat(material.`descricao`)
FROM
     `material` material,
     `rel_objeto_material` rel_objeto_material,
     `objeto` objeto
WHERE
     material.id = rel_objeto_material.id
     and objeto.INVENTARIO = rel_objeto_material.INVENTARIO
     and objeto.INVENTARIO = $P{INVENTARIO};

porem assim fica com virgula, pra ser com ; seria

 

SELECT
     REPLACE( (group_concat(material.`descricao`)) ',' , ';' )
FROM
     `material` material,
     `rel_objeto_material` rel_objeto_material,
     `objeto` objeto
WHERE
     material.id = rel_objeto_material.id
     and objeto.INVENTARIO = rel_objeto_material.INVENTARIO
     and objeto.INVENTARIO = $P{INVENTARIO};

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.