Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde amigos
Queria ver se há possibilidade de fazer o seguinte:
Listo meus dados da seguinte forma:
ID DESCRIÇÃO PRODUTO
1 Desc Produto_1
1 Desc Produto_2
Gostaria de saber se é possível "fazer de 02 linhas apenas 01", ficando da seguinte forma:
D DESCRIÇÃO PRODUTO
1 Desc Produto_1, Produto_2
No aguardo. Obrigado.
Matheus, obrigado pelo retorno.
Estou usando Postgresql, e pelo que pesquisei posso utilizar array_agg, porém nesta situação não consigo utilizar função de agregação: SUM por exemplo. Além do produto preciso trazer o total de entradas e saídas de cada produto.
Uma ideia seria trazer cada produto em uma linha da consulta, porém os dados comuns (ID, DESCRIÇÃO) seriam repetidos a cada vez.
Não entendi muito bem o que você precisa.
Você começou dizendo que precisava unir as strings dos nomes dos produtos, mas agora disse sobre capturar a soma das entradas/saídas.
Para a soma das entradas e saídas você deveria sim utilizar funções de agregação, mas em conjunto com a instrução GROUP.
A ideia seria fazer algo assim:
SELECT
p.id,
p.nome,
SUM( e.valor ) valor_entradas,
SUM( s.valor ) valor_saidas
FROM produtos p
INNER JOIN entradas e ON e.produto = p.id
INNER JOIN saidas s ON s.produto = p.id
GROUP BY p.id
Matheus.
Utilizei o GROUP BY, e resolvi o problema.
Obrigado.
Não sei qual seu banco, mas no mysql/mariadb dá pra usar GROUP_CONCAT (existe nos outros bancos relacionais também, mas às vezes com outros nomes):
SELECT
id, GROUP_CONCAT(produto)produtosFROMprodutos