Ir ao conteúdo
  • Cadastre-se

ajuda em sql agrupar


Posts recomendados

Boa noite,

 

sou iniciante em sql e gostaria de uma ajuda...

 

tenho a seguinte tabela:

 

CODIGO   DESCRICAO           DATA                           SUBTOTAL

0005          COXAO MOLE        21/01/2015 08:50        26,15

0005          COXAO MOLE        21/01/2015 09:01        10,20

0007          ACEM                      21/01/2015 10:30        12,13

0007          ACEM                      21/01/2015 10:34         9,50

0005          COXAO MOLE        21/01/2015 10:45         12,50

 

gostaria de tipo agrupar os itens pelo CODIGO, somando o SUBTOTAL, pra eu saber quanto vendeu de coxao mole e de acem no dia 21/01/15. E também gostaria q a DATA ficasse no formato dd/mm/aaaa, sem as horas.

 

consegui chegar no basico:

SELECT CODIGO, DESCRICAO, DATA, SUBTOTALFROM TABELA1

obrigado.

Link para o comentário
Compartilhar em outros sites

  • mês depois...

E ai, beleza?

 

Então, eu realizei um teste para você, mas realizei em PL/SQL. Segue abaixo:

create global temporary table TABELA1(CODIGO INT,DESCRICAO  varchar2(50),DATA       DATE,SUBTOTAL NUMBER(10,2));INSERT INTO TABELA1 VALUES (0005, 'COXAO MOLE', to_date('21/01/2015 08:50', 'dd/MM/yyyy HH12:MI'), 26.15);INSERT INTO TABELA1 VALUES (0005, 'COXAO MOLE', to_date('21/01/2015 09:01', 'dd/MM/yyyy HH12:MI'), 10.20);INSERT INTO TABELA1 VALUES (0007, 'ACEM', to_date('21/01/2015 10:30', 'dd/MM/yyyy HH12:MI'), 12.13);INSERT INTO TABELA1 VALUES (0007, 'ACEM', to_date('21/01/2015 10:34', 'dd/MM/yyyy HH12:MI'), 9.50);INSERT INTO TABELA1 VALUES (0005, 'COXAO MOLE', to_date('21/01/2015 10:45', 'dd/MM/yyyy HH12:MI'), 12.50);SELECT CODIGO, DESCRICAO, TO_CHAR(MAX(DATA), 'dd/MM/yyyy'), SUM(SUBTOTAL)  FROM TABELA1 GROUP BY CODIGO, DESCRICAO;

z8ieGX0.png

 

Como podes ver, eu fiz um group by em Codigo e Descrição. Para inserir a data no formato que você queria, utilizei o to_char para formatar e peguei a maior data daqueles valores agrupados. Depois realizei uma soma de valores do subtotal.

 

Qualquer dúvida estou à disposição.

Link para o comentário
Compartilhar em outros sites

@Tiago Araújo

 

Basicamente o que já disseram eu reforço.

 

No mysql basta você utilizar a clausula  GROUP BY [nome do campo] que quer agrupar. 

Já na data, se inicialmente você quer que ela fique sem horas, basta ter o campo como DATE.. ao invés de DATETIME.

Reforçando... Caso for MySQL utilize DATE ao invés DATETIME, caso o seu banco for Oracle a variável DATETIME não existe, então temos que utilizar o DATE (quem vem o time também) e depois temos que filtrar utilizando o to_char(coluna, 'sintaxe')

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!