Fórum Dúvida com código SQL #411237

05/01/2012

0

No seguinte código

select
Janeiro as mes, 
sum(cast (ne.total as numeric(10,2))) as Total_Vendas
from notas_emitidas ne
where
extract (month from ne.data_emissao)
= 1
and extract (year from ne.data_emissao)
= :Ano

union all

select
Fevereiro as mes,
sum(cast (ne.total as numeric(10,2))) as Total_Vendas
from notas_emitidas ne
where
extract (month from ne.data_emissao)
= 2
and extract (year from ne.data_emissao)
= :Ano
union all

select
Março as mes,
sum(cast (ne.total as numeric(10,2))) as Total_Vendas
from notas_emitidas ne
where
extract (month from ne.data_emissao)
= 3
and extract (year from ne.data_emissao)
= :Ano

group by 1, 2


ocorre o seguinte erro:

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid command.
Data type unknown.


o que tem de errado no meu SQL, quando executo cada select individualmente ele rola na boa!
Obrigado
Rafael Farias

Rafael Farias

Responder

Posts

10/01/2012

Eduardo Richeli

amigo este seu sql esta um bocado redundante, você poderia fazer uma procedure, com for, vai ficar bem mais rapido a recuperação das suas informações
Responder

Gostei + 0

10/01/2012

Rafael Farias

eu consegui corrigir ele para funcionar, mas se puder me dar o exemplo do FOR, agradeceria muito para meus estudos.
=)
Responder

Gostei + 0

10/01/2012

Emerson Nascimento

tente:

select
(month from data_emissao) as mes,
cast(coalesce(sum(total),0) as numeric(10,2)) as Total_Vendas
from notas_emitidas
where extract (year from data_emissao) = :Ano
group by 1

Responder

Gostei + 0

11/01/2012

Eduardo Richeli

amigo no inicio a codificação union ficou blz, mas medida que as tabelas almentavam de volume ficava + lento, entao criei as SP onde melhorou 95%

FOR SELECT xxxxx from tabela
INTO xxxxx DO
SUSPEND;

tem muitas documentaç~çoes na net sobre isto, basta pesquisar, abraços
Responder

Gostei + 0

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

Aceitar