1
resposta

Dúvida GROUP BY

Olá, Eu estou com duvida quanto ao agrupamento, eu não consegui entender ainda a questão, como eu faço um select com vários campos mas agrupe apenas um? Eu fiz um exemplo em uma base de dados de um cliente meu, segue:

A dúvida é, como eu poderia agrupar pelo campo CODIGO da tabela TVENPEDIDO?

SELECT VENPED.CODIGO, VENPED.VALORLIQUIDO, VENPED.VALORDESCONTO, VENPED.DATA, VENPED.NOTAFISCAL, VENPRO.PRODUTO, VENPRO.QTDE, VENPRO.VLRLIQUIDO, ESTPRO.DESCRICAO, ESTPRO.CLASSIFICACAOFISCAL

FROM TVENPEDIDO VENPED

INNER JOIN tvenproduto VENPRO ON VENPRO.pedido = VENPED.codigo

INNER JOIN testprodutogeral ESTPRO ON VENPRO.PRODUTO = ESTPRO.codigo

WHERE GERAFINANCEIRO = 'S' AND STATUS = 'EFE' AND NFELETRONICA = 'S'

ORDER BY DATA;

1 resposta

Olá Ricardo tudo bem com você??

Tenta esse script:

select

VENPED.CODIGO, 
VENPED.VALORLIQUIDO,
VENPED.VALORDESCONTO, 
VENPED.DATA, 
VENPED.NOTAFISCAL, 
VENPRO.PRODUTO, 
VENPRO.QTDE, 
VENPRO.VLRLIQUIDO, 
ESTPRO.DESCRICAO, 
ESTPRO.CLASSIFICACAOFISCAL

from TVENPEDIDO VENPED

inner join tvenproduto VENPRO on VENPRO.pedido = VENPED.codigo
inner join testprodutogeral ESTPRO on VENPRO.PRODUTO = ESTPRO.codigo

where GERAFINANCEIRO = 'S' and STATUS = 'EFE' and NFELETRONICA = 'S'

group by VENPED.CODIGO
order by DATA;

Você pode ainda fazer uma consulta e agrupar os resultados em função do campo desejado:

select * from cadastro group by cidade;

Seleciona todos os campos da "tabela" cadastro e os agrupa em função do campo "cidade"

Espero ter te ajudado e qualquer dúvida é só retornar aqui! =)