Estou rodando uma consulta muuuuuuuuito grande, cheia de subqueries somando varios valores.
Basicamente o que eu preciso é agrupar pelo tipo de lançamento.
Porem eu tenho 7 tipos de lancamentos diferentes, o que eu fiz foi transformar esses 7 tipos em 2 usando case, e agrupar por estes 2. vou postar parte do sql (n posso postar todo) pra vocês terem uma ideia do que to falando...
select distinct
fo.ano,
fo.idlancamento,
Case fo.tipolancamento
when '3' then '1'
else '0'
end as tipofolha,
fo.data,
f.cliente,
(select sum(fi.valor)
from
lanc fo3
inner join itemlanc fi on (fo3.folha=fi.folha) and (fo3.ano=fi.ano)
inner join item e on (fi.item=e.item)
where fi.item in
(select es.itemsys
from itemsys es
where es.nome = 'valor1')
and fo3.tipolancamento = fo.tipolancamento
and fo3.data between '2013-01-01' and '2013-01-31'
and fo3.cliente=f.cliente
) as valor_base,
--
--contem varias subquereies como a anterior
- -
from lanc fo
where
fo.data between '2013-01-01' and '2013-01-31'
and
fo.ano=2013
group by
case
when fo.tipolancamento = 3 then 1
else 0
end
o problema é que aquando rodo esse comando, aparece a seguinte msg:
Error: GDS Exception. 335544569. 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)
SQLState: HY000
ErrorCode: 335544569
Pergunta
Dr. House
Bom dia. Tenho um banco de dados Firebird 1.5.6.
Estou rodando uma consulta muuuuuuuuito grande, cheia de subqueries somando varios valores.
Basicamente o que eu preciso é agrupar pelo tipo de lançamento.
Porem eu tenho 7 tipos de lancamentos diferentes, o que eu fiz foi transformar esses 7 tipos em 2 usando case, e agrupar por estes 2. vou postar parte do sql (n posso postar todo) pra vocês terem uma ideia do que to falando...
o problema é que aquando rodo esse comando, aparece a seguinte msg:
alguém sabe como me ajudar?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.