erro usando Group by
09/01/2016
0
Bom dia. Já procurei em tudo quanto é lugar a solução pra esse erro. Porém só encontro solução pra casos simples que eu sei que não é o meu caso. O meu caso é o seguinte:
Tenho um sql mais ou menos assim:
select campo1, campo2, campo3, campo4, campo5, unitario, qtd, total from tabela01
porém há casos em que os registro se repetem, e eu não quero isso. Pra que não ocorra essa repetição eu uso o group by, mas uso a função sum nos campos unitario, qtd e total. O SQL fica assim:
select campo1, campo2, campo3, campo4, campo5, sum(unitario*qtd)/sum(qtd) untario, sum(qtd) qtd, sum(total) total group by 1,2,3,4,5
O Campo unitario é uma média de valores unitários porém usando a quantidade como peso (média composta).
Já tentei tirar esse campo unitário que o problema é com ele, mais nada. eu tiro os campos agregados e tiro a parte "group by"
Sempre aparece o erro: Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)..
Porém todos o campos estão com uma função agregadora ou no group by.
SQL original:
select
loja empresa,
((190000)-(select min(CAST(DOCUMENTO as integer)) from itvendanf) +4+cast(documento as integer)) controle,
--documento controle,
produto cod_produto,
(
select count(produto)
from itvendanf ittr
where itvendanf.documento=ittr.documento
and ittr.produto>=itvendanf.produto
)
seq_produto,
case
when (CPF_CNPJ is not null and CPF_CNPJ<>'') then
CAST(trim(CPF_CNPJ) AS VARCHAR(20))
else
cast(CODIGO as varchar(20))
end CNPJ_CPF,
cst cod_sittrib,
0 base_icms,
0 redu_icms,
vendedor,
0 base_ipi,
cod_fiscal cfop,
(
select unidade
from produto
where codigo=produto
) unidade,
(
select nome
from produto
where codigo=produto
) nome_produto,
1 quant_unidade,
'FINALIZADA' as situacao,
sum(quantidade) quantidade,
sum(quantidade*unitario)/sum(quantidade) vl_unitario,
sum(sub_total) vl_total,
sum(valor_icms) vl_icms,
sum(vlr_desc) vl_desc,
sum(perc_ipi),
sum(valor_ipi) vl_ipi
from (select * from ITVENDANF where documento<10) itvendanf
left join cliente on cliente.codigo=itvendanf.cliente
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
Tô usando o IBExpert
Tenho um sql mais ou menos assim:
select campo1, campo2, campo3, campo4, campo5, unitario, qtd, total from tabela01
porém há casos em que os registro se repetem, e eu não quero isso. Pra que não ocorra essa repetição eu uso o group by, mas uso a função sum nos campos unitario, qtd e total. O SQL fica assim:
select campo1, campo2, campo3, campo4, campo5, sum(unitario*qtd)/sum(qtd) untario, sum(qtd) qtd, sum(total) total group by 1,2,3,4,5
O Campo unitario é uma média de valores unitários porém usando a quantidade como peso (média composta).
Já tentei tirar esse campo unitário que o problema é com ele, mais nada. eu tiro os campos agregados e tiro a parte "group by"
Sempre aparece o erro: Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)..
Porém todos o campos estão com uma função agregadora ou no group by.
SQL original:
select
loja empresa,
((190000)-(select min(CAST(DOCUMENTO as integer)) from itvendanf) +4+cast(documento as integer)) controle,
--documento controle,
produto cod_produto,
(
select count(produto)
from itvendanf ittr
where itvendanf.documento=ittr.documento
and ittr.produto>=itvendanf.produto
)
seq_produto,
case
when (CPF_CNPJ is not null and CPF_CNPJ<>'') then
CAST(trim(CPF_CNPJ) AS VARCHAR(20))
else
cast(CODIGO as varchar(20))
end CNPJ_CPF,
cst cod_sittrib,
0 base_icms,
0 redu_icms,
vendedor,
0 base_ipi,
cod_fiscal cfop,
(
select unidade
from produto
where codigo=produto
) unidade,
(
select nome
from produto
where codigo=produto
) nome_produto,
1 quant_unidade,
'FINALIZADA' as situacao,
sum(quantidade) quantidade,
sum(quantidade*unitario)/sum(quantidade) vl_unitario,
sum(sub_total) vl_total,
sum(valor_icms) vl_icms,
sum(vlr_desc) vl_desc,
sum(perc_ipi),
sum(valor_ipi) vl_ipi
from (select * from ITVENDANF where documento<10) itvendanf
left join cliente on cliente.codigo=itvendanf.cliente
group by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
Tô usando o IBExpert
Lucas Silva
Curtir tópico
+ 0
Responder
Posts
13/01/2016
Ronaldo Filho
Boa tarde Grande.
Dá uma olhada na parte que tu usa sub-selects, se não me engano eles não entram na partícula group by
Dá uma olhada na parte que tu usa sub-selects, se não me engano eles não entram na partícula group by
Responder
Clique aqui para fazer login e interagir na Comunidade :)