[RESOLVIDO] qual o erro

BOM DIA!!

MINHA BASE DE DADOS É O FIREBIRD 1.5, USO O IB EXPERT PARA EDITAR.

TENHO O SEGUINTE COMANDO QUE NÃO ESTA DANDO CERTO.

select produto.codigo_produto,
produto.nome,
produto.preco_custo,
icmspdv.percentual_aliquota,
sum(preco_custo * percentual_aliquota / 100)
from produto,
icmspdv
group by produto.preco_custo,
icmspdv.percentual_aliquota
where produto.estoque_atual > 0
order by produto.nome asc

O CODIGO DE ERRO QUE DEU FOI:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 10, char 1.
where.

ALGUEM SABE O ERRO E PODE ME EXPLICAR ONDE EU ERREI ?

VALEW

O teu where está depois do group by. Ele deve estar logo depois do from.

Coloque a instrução GROUP BY em último lugar da instrução e faça um teste para ver se funciona.

flws

[quote=jonata.zurchimitten]BOM DIA!!

MINHA BASE DE DADOS É O FIREBIRD 1.5, USO O IB EXPERT PARA EDITAR.

TENHO O SEGUINTE COMANDO QUE NÃO ESTA DANDO CERTO.

select produto.codigo_produto,
produto.nome,
produto.preco_custo,
icmspdv.percentual_aliquota,
sum(preco_custo * percentual_aliquota / 100)
from produto,
icmspdv
group by produto.preco_custo,
icmspdv.percentual_aliquota
where produto.estoque_atual > 0
order by produto.nome asc

O CODIGO DE ERRO QUE DEU FOI:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 10, char 1.
where.

ALGUEM SABE O ERRO E PODE ME EXPLICAR ONDE EU ERREI ?

VALEW[/quote]

select produto.codigo_produto,
produto.nome,
produto.preco_custo,
icmspdv.percentual_aliquota,
sum(produto.preco_custo * icmspdv.percentual_aliquota / 100)
from produto,
icmspdv
where produto.estoque_atual > 0
group by produto.preco_custo,
icmspdv.percentual_aliquota
order by produto.nome asc

Atente a ordem… primeiro o where, depois o group e depois o order…

OK

MEU AMIGO COLORADO FIZ ISSO MAS AINDA NÃO FUNCIONOU

O QUE PODE SER ?

DEU ESTE ERRO AI:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)

Quanto tu usa um Group By, obrigatoriamente deves agrupar por todos os campos contidos no select. No teu caso, tem de agrupar por produto.codigo_produto, produto.nome, produto.preco_custo, icmspdv.percentual_aliquota. A ordem dos agrupamentos podes definir como quiseres. :slight_smile:

TORÇO PARA O BRASIL DE PELOTAS O COLORADO MAS MUITO OBRIGADO PELA EXPLICAÇÃO
AGORA DEU CERTO, SÓ QUE EU ACHO QUE É MUITO GRANDE A MINHA TABELA QUE TRAVO O IBEXPERT

MUITO OBRIGADO MESMO

Quando usamos funções de agrupamento, por exemplo sum(), queremos unir varios registros em comum, de um produto por exemplo, em uma unica linha (ou algumas dependendo de quantas colunas agrupar) com uma soma de alguma coluna.

Um exemplo seria uma relação produto / venda: Trazendo somente os nomes dos produtos e o valor total de vendas realizadas POR produto.

select p.nome_produto, sum(v.valor_venda) soma 
from produto p, venda v 
where p.codigo_produto = v,codigo_produto 
group by p.nome
order by p.nome 

resultado:

nome_produto       soma
PRODUTO1           3500.00
PRODUTO2         12500.00
PRODUTO3         10000.00
PRODUTO4           1500.00

Outro caso seria adicionar mais uma coluna no agrupamento, com certeza vai trazer mais registros:

select p.nome_produto, m.nome_marca, sum(v.valor_venda) soma 
from produto p, venda v, marca m
where p.codigo_produto = v,codigo_produto 
group by p.nome, m.nome_marca 
order by p.nome, m.nome_marca 

resultado:

nome_produto      marca           soma
PRODUTO1           MARCAY     3000.00
PRODUTO1           MARCAX       500.00

PRODUTO2          MARCAY    10500.00
PRODUTO2          MARCAH      2500.00

PRODUTO3          MARCAW      5000.00
PRODUTO3          MARCAH       3000.00
PRODUTO3          MARCAX       2000.00

PRODUTO4          MARCAX       1500.00

Jonata, ao postar, por favor, desligue o caps lock. É considerado falta de educação, já que normalmente tudo em maiúsculas é usado para indicar que você está gritando. Fora que fica pior de ler.

ok, e ja aproveitando me explica como que eu boto os comandos para postar no forun dentro daquelas tabelinhas que os outro colocam.

grato amigo

ok, e ja aproveitando me explica como que eu boto os comandos para postar no forun dentro daquelas tabelinhas que os outro colocam.

grato amigo[/quote]

use a tag <code> </code> ( troque os <> por [ ])

Leia o seguinte tópico:
http://www.guj.com.br/posts/list/50115.java

Ele explica esse e outros recursos do fórum, em detalhes.

obrigado a todos
espero que com o tempo
possa ajudar alguem tmbm
ehehe
abraço