Sql roda no IbExpert mas não roda no FDQuery do FireDAC

25/02/2016

0

Ai abaixo vai o código que roda muito bem no IBExpert mas não roda no FDQuery.

select
estoque.codigo,
estoque.nome,
estoque.grupo as n_grupo,
grupos_novos.descricao as grupo,
estoque.und_venda,
itevendas.valor_unitario as vl_un,
sum(itevendas.qtd) as qtd_vendida,
(itevendas.valor_unitario - itevendas.desconto) * itevendas.qtd as total_c_desc,
min(itevendas.valor_unitario - itevendas.desconto) as menor_preco_v,
estoque.preco_de_custo as custo_atual,
min( itevendas.valor_unitario - itevendas.desconto) - estoque.preco_de_custo as rentabilidade,
itevendas.desconto as desconto,
itevendas.desconto_total,
avg(itevendas.desconto) as desconto_medio



from itevendas inner join estoque on (estoque.codigo = itevendas.codigo)
inner join vendas on (itevendas.nota = vendas.nota)
inner join grupos_novos on (estoque.grupo = grupos_novos.codigo)


where

vendas.data_emissao >='01/06/2016' and vendas.data_emissao <='01/11/2016' and
vendas.modelo = itevendas.modelo and
vendas.serie = itevendas.serie and
vendas.cancelada = '0'


group by
estoque.codigo,
estoque.nome,
estoque.grupo,
grupos_novos.descricao,
estoque.und_venda,
estoque.preco_de_custo,
vl_un,
desconto,
desconto_total,
total_c_desc


order by
grupos_novos.descricao, estoque.nome
Willia Leão

Willia Leão

Responder

Posts

26/02/2016

Marco Antônio

Bom dia olhando por alto observei o seguinte:
- Em alguns casos vc agrupô usando o nome fisico da coluna e em outros vc agrupo pelo nome virtual. Mantenha um padrão para ficar mais fácil a manutenção do seu código
- No Group By vc utilizo de apelidos que não exitem
desconto_total, <--- não há este apelido. Existe itevendas.desconto_total
total_c_desc <--- não há este apelido. Caso seja para 'avg(itevendas.desconto) as desconto_medio' não pode ser usado devido a ser calculado.

- Só deve ser agrupado campos agregados. Calculados que utilizem 'AVG', 'SUM','MIN', 'MAX'...... não.
- Procure manter os campos que serão agrupados primeiro no select, também auxilia na manutenção.

Desculpa não poder olhar mais a fio.
Qualquer coisa avisa ae.

Abc.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar