GROUP BY NAO FUNCIONA

Delphi

01/10/2008

SELECT C.Nome_Cliente, M.Cod_Movimento, M.Data_Movimento, P.Nome_Produto, I.Quantidade, Q.Desc_Qualidade, L.Desc_Lote
FROM Tb_Movimento M
INNER JOIN Tb_Itens I
ON (M.Cod_Movimento = I.Cod_Movimento)
INNER JOIN Tb_Clientes C
ON (C.Cod_Cliente = M.Cod_Cliente)
INNER JOIN tb_Produtos P
ON (P.Cod_Produto = I.Cod_Produto)
INNER JOIN Tb_Qualidade Q
ON (I.Cod_Qualidade = Q.Cod_Qualidade)
INNER JOIN Tb_Lotes L
ON (L.Cod_Lote = I.COd_Lote)
WHERE M.Cod_TipoMovimento = 2
GROUP BY C.Nome_Cliente

DA A SEGUINTE MESGEM:

When Group by exists every simple field in projector must be in group by


Souzaaguiar

Souzaaguiar

Curtidas 0

Respostas

Gilberto_lg

Gilberto_lg

01/10/2008

Cara, acho q é o seguinte...
Você tem q usar funções para os outros campos que não estão no agrupamento, pois estes podem retornar mais de um valor.
ex.: MAX(M.Cod_Movimento)...ou então colocar no group by todos estes campos....


GOSTEI 0
Weber

Weber

01/10/2008

O group by não se faz necessário, utilize group by apenas quando existirem sum, count, avg, max ou min em seu select.


GOSTEI 0
Webjoel

Webjoel

01/10/2008

Olá!

Nossos amigo acima estão corretos, e só para completar, no seu caso que você precisa e deve fazer é usar o ´order by´ no lugar do ´group by´,

no caso:

SELECT C.Nome_Cliente, M.Cod_Movimento, M.Data_Movimento, P.Nome_Produto, I.Quantidade, Q.Desc_Qualidade, L.Desc_Lote
FROM Tb_Movimento M
INNER JOIN Tb_Itens I
ON (M.Cod_Movimento = I.Cod_Movimento)
INNER JOIN Tb_Clientes C
ON (C.Cod_Cliente = M.Cod_Cliente)
INNER JOIN tb_Produtos P
ON (P.Cod_Produto = I.Cod_Produto)
INNER JOIN Tb_Qualidade Q
ON (I.Cod_Qualidade = Q.Cod_Qualidade)
INNER JOIN Tb_Lotes L
ON (L.Cod_Lote = I.COd_Lote)
WHERE M.Cod_TipoMovimento = 2
ORDER BY C.Nome_Cliente /*ASC ou DESC - por padrão vem ASC*/


Bons Selects!!!


GOSTEI 0
Souzaaguiar

Souzaaguiar

01/10/2008

Senhores, na verdade eu gostaria de exibir um relatorio da seguinte forma:

NOME DO CLIENTE:

[b:0c863b686c]Casas Bahia[/b:0c863b686c]

Cod_Movimento: 1
Data: 10/09/2008
Produto: Cravo
Quantidade: 1000
Qualidade: Bom
Lote: 01

Cod_Movimento: 5
Data: 01/10/2008
Produto: Cacau
Quantidade: 2000
Qualidade: Bom
Lote: 03

[b:0c863b686c]Lojas Americanas[/b:0c863b686c]

Cod_Movimento: 2
Data: 15/09/2008
Produto: Guarana
Quantidade: 5000
Qualidade: Bom
Lote: 05

Cod_Movimento: 5
Data: 01/10/2008
Produto: Cacau
Quantidade: 2000
Qualidade: Bom
Lote: 06
...
...


Gostaria de visualizar todas as Entradas de um determinado Cliente no meu relatório.

Estou usando o QuickRep e utilizando o componente QrGroup. Como devo proceder:?


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

01/10/2008

SELECT C.Nome_Cliente, M.Cod_Movimento, M.Data_Movimento, P.Nome_Produto, I.Quantidade, Q.Desc_Qualidade, L.Desc_Lote
FROM Tb_Movimento M
INNER JOIN Tb_Itens I
ON (M.Cod_Movimento = I.Cod_Movimento)
INNER JOIN Tb_Clientes C
ON (C.Cod_Cliente = M.Cod_Cliente)
INNER JOIN tb_Produtos P
ON (P.Cod_Produto = I.Cod_Produto)
INNER JOIN Tb_Qualidade Q
ON (I.Cod_Qualidade = Q.Cod_Qualidade)
INNER JOIN Tb_Lotes L
ON (L.Cod_Lote = I.COd_Lote)
WHERE C.Nome_Cliente = ´CASAS BAHIA´

ou
WHERE C.Cod_Cliente = X


GOSTEI 0
POSTAR