Fórum Ajuda comando DISTINCT #427026
24/10/2012
0
Estou fazendo sql abaixo usando o comando DISTINCT, POREM da este erro:Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
SELECT distinct
ent.cod_entrada,ent.cod_cliente,ENT.DATA,ENT.cod_fornecedores,PED.valor_totalpuxada,cli.nome,FORN.fornecedor
FROM ENTRADAS ENT
inner join clientes cli on cli.cod_clientes = ent.cod_cliente
inner join fornecedores forn on forn.cod_fornecedor = ent.cod_fornecedores
inner join pedidos ped on ped.cod_entrada = ent.cod_entrada
where ent.cod_fornecedores = :PARCODIGO
group BY ENT.cod_entrada
ORDER BY ENT.cod_entrada
me ajudem por favor
SELECT distinct
ent.cod_entrada,ent.cod_cliente,ENT.DATA,ENT.cod_fornecedores,PED.valor_totalpuxada,cli.nome,FORN.fornecedor
FROM ENTRADAS ENT
inner join clientes cli on cli.cod_clientes = ent.cod_cliente
inner join fornecedores forn on forn.cod_fornecedor = ent.cod_fornecedores
inner join pedidos ped on ped.cod_entrada = ent.cod_entrada
where ent.cod_fornecedores = :PARCODIGO
group BY ENT.cod_entrada
ORDER BY ENT.cod_entrada
me ajudem por favor
Newton Silva
Curtir tópico
+ 0
Responder
Post mais votado
26/10/2012
Só um detalhe, não tem necessidade de usar o DISTINCT e o GROUP na mesma sentença SQL. Usa um ou outro. Para o que você precisa, somente o GROUP já resolve.
SELECT ent.cod_entrada,ent.cod_cliente,ENT.DATA,ENT.cod_fornecedores,cli.nome,FORN.fornecedor, SUM(PED.valor_totalpuxada) AS valor_totalpuxada FROM ENTRADAS ENT inner join clientes cli on cli.cod_clientes = ent.cod_cliente inner join fornecedores forn on forn.cod_fornecedor = ent.cod_fornecedores inner join pedidos ped on ped.cod_entrada = ent.cod_entrada where ent.cod_fornecedores = :PARCODIGO group BY ENT.cod_entrada,ent.cod_cliente,ENT.DATA,ENT.cod_fornecedores,cli.nome,FORN.fornecedor ORDER BY ENT.cod_entrada
Obrigado deu certo, me desculpe..mais vc pode me auxilar como eu faço para somar os campos "PED.valor_totalpuxada" nesta mesma SQL?
Obrigado
Obrigado
Claudia Nogueira
Responder
Gostei + 1
Mais Posts
24/10/2012
Tiago
Boa tarde, esse erro é bastante comum, você tem de colocar todas as colunas que você está listando no select na cláusula GROUP BY. Logo abaixo segue o seu script com a modificação.
Espero ter ajudado
SELECT distinct ent.cod_entrada,ent.cod_cliente,ENT.DATA,ENT.cod_fornecedores,PED.valor_totalpuxada,cli.nome,FORN.fornecedor FROM ENTRADAS ENT inner join clientes cli on cli.cod_clientes = ent.cod_cliente inner join fornecedores forn on forn.cod_fornecedor = ent.cod_fornecedores inner join pedidos ped on ped.cod_entrada = ent.cod_entrada where ent.cod_fornecedores = :PARCODIGO group BY ENT.cod_entrada,ent.cod_cliente,ENT.DATA,ENT.cod_fornecedores,PED.valor_totalpuxada,cli.nome,FORN.fornecedor ORDER BY ENT.cod_entrada
Espero ter ajudado
Responder
Gostei + 0
24/10/2012
Newton Silva
Obrigado deu certo, me desculpe..mais vc pode me auxilar como eu faço para somar os campos "PED.valor_totalpuxada" nesta mesma SQL?
Obrigado
Obrigado
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)