Duvida GROUP BY , ORDER BY

10/04/2008

0

SQL

Bom galera , sou novato e estou com dúvidas sobre como usar esses comandos no SQLDataSet que iria me gerar um relatório sobre produtos vendidos, nome do cliente , total do pedido , etc...
o select é esse

select PE.ID_PEDIDO , C.NOME , PE.DATA , Sum(I.QUANTIDADE*I.PRECO) as TotalPedido from
PEDIDOS PE , CLIENTES C , ITENSPEDIDOS I where
PE.ID_CLIENTE = C.ID_CLIENTE and PE.ID_PEDIDO = I.ID_PEDIDO
and PE.DATA between :DataIni and :DataFin
Group by
C.NOME , PE.DATA , PE.ID_PEDIDO
order by
C.NOME , PE.DATA desc


gostaria de saber como funciona o ´ Group By ´ e o ´ Order by ´ quem puder ajudar fico grato ! :wink:


Psyjacko

Psyjacko

Responder

Posts

10/04/2008

Afo

Amigo,

não utilizo o SQLDataSet, mas vê se funciona assim :

select PE.ID_PEDIDO , C.NOME , PE.DATA , Sum(I.QUANTIDADE*I.PRECO) as TotalPedido from
PEDIDOS PE , CLIENTES C , ITENSPEDIDOS I where
PE.ID_CLIENTE = C.ID_CLIENTE and PE.ID_PEDIDO = I.ID_PEDIDO
and PE.DATA between :DataIni and :DataFin


// Entenda que serão agrupados todos os registros com os tres campos iguais. Se por exemplo a data de um registro for diferente da outra, mesmo o id_pedido e o nome sendo iguais, será agrupado separadamente.

// Aqui vc coloca os campos do select

Group by PE.ID_PEDIDO , C.NOME , PE.DATA

//Se vc quiser filtrar pelo resultado do Group by use

Having Sum(I.QUANTIDADE*I.PRECO) > 0 // Por Exemplo

// Desta forma fica em ordem de NOME e depois em ordem de DATA

order by C.NOME , PE.DATA desc


Espero ter ajudado !


Responder

10/04/2008

Facc

gostaria de saber como funciona o ´ Group By ´ e o ´ Order by ´ quem puder ajudar fico grato ! :wink:


Group By = Agrupa valores iguais
Order By = Ordena por ordem numérica ou alfabetica (depende do campo escolhido)

no seu caso o [b:e78bba1000]desc[/b:e78bba1000] ordena por ordem decrescente ( maior pro menos ou z ao a)


Responder

11/04/2008

Psyjacko

Poxa eu entendí mais ou menos , o ORDER BY eu entendí mas o GROUP BY tá complicado , eu reparei que se usa o GROUP BY sempre quando tem uma
agregação tipo essa
Sum(I.QUANTIDADE*I.PRECO)


flw :wink:


Responder

11/04/2008

Facc

Poxa eu entendí mais ou menos , o ORDER BY eu entendí mas o GROUP BY tá complicado , eu reparei que se usa o GROUP BY sempre quando tem uma agregação tipo essa [quote:5d6e6a617e]Sum(I.QUANTIDADE*I.PRECO)


flw :wink:[/quote:5d6e6a617e]


Vc está certo... sempre é usado com isso um SUM.
Vou tentar explicar melhor, o GROUP BY, traduzindo ao pé da letra é AGRUPAR POR, esse agrupamento pode ser por Código, Datas, Algum Status.

Select CodCli, Nome, Sum(ValorVenda) from Vendas
GROUP BY CodCli, Nome


Esse select ele irá somar o valor da venda agrupando pelo Codigo e nome


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar