Duvida GROUP BY , ORDER BY

SQL

10/04/2008

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

Curtidas 0

Respostas

Afo

Afo

10/04/2008

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 !


GOSTEI 0
Facc

Facc

10/04/2008

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)


GOSTEI 0
Psyjacko

Psyjacko

10/04/2008

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:


GOSTEI 0
Facc

Facc

10/04/2008

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


GOSTEI 0
POSTAR