Duvida GROUP BY , ORDER BY
10/04/2008
0
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
Posts
10/04/2008
Afo
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 !
10/04/2008
Facc
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)
11/04/2008
Psyjacko
agregação tipo essa
flw :wink:
11/04/2008
Facc
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
Clique aqui para fazer login e interagir na Comunidade :)