Fórum Coalesce com D2010 e Firebird 2.5 #420270
21/07/2012
0
seguinte, até ontem, utilizava normal o meu bco fb1.5 com d2010.
migrei para a versao fb2.5 e estou com o seguinte problema.
Importante: no IBEXPERT, funciona 100%, apenas apresenta o problema no D2010
Select
NF.Datamovimento
, M.Codprodutomov
, M.Descricao
, CL.Numclassificacao
, M.Quantmovimentada
, M.Valorunitario
, Rs_rounddec( M.Quantmovimentada * M.Valorunitario, 2 ) As ValorTotal
, Coalesce( ( Select First 1 ME.Aliqicm From Movestoque ME
Where ME.Codprodutomov = M.Codprodutomov
And ME.Codoperacao In (2,4)
And ME.Empresa = 1
And ME.Datamovimentoestoque <= NF.Datamovimento
Order By ME.Datamovimentoestoque ) , 0 ) As AliqICM
, Coalesce( ( Select First 1 ME.Aliqipi From Movestoque ME
Where ME.Codprodutomov = M.Codprodutomov
And ME.Codoperacao In (2,4)
And ME.Empresa = 1
And ME.Datamovimentoestoque <= NF.Datamovimento
Order By ME.Datamovimentoestoque ) , 0 ) As AliqIPI
, CL.Flagsubtributaria
, Case When M.Tipomovimento = 1 Then E Else S End AS TipoMovimento
, M.Numdocumentoes
From Notasfiscais NF
Left Join Movestoque M On M.Empresa = NF.Empresa
AND M.Tipocontrole = NF.Tipocontrole
And M.Codcontrole = NF.Codcontrole
Left Join Classfiscais CL On CL.Codigo = M.Codclassfiscal
Where ( NF.Empresa = 1 And NF.Codcontrole = 79196 AND NF.Tipocontrole = 2 )
OR ( NF.Empresa = 1 AND NF.Codcontrole = 35448 And NF.Tipocontrole = 1 )
Order By
M.Numdocumentoes
, M.Tipomovimento Desc
erro: no delphi, LIST INDEX OUT OF BOUNDS(-1)
importante:, se eu trocar o parametro do Coalesce, que no caso do select acima = 0, por -1, funciona normal, só dá problema se utilizar com parametro = 0.
Alguem ja passou por isso ?
Obrigado.
Cleber
Cleber Campos.
Curtir tópico
+ 0Posts
23/07/2012
Cleber Campos.
Gostei + 0
24/07/2012
Bruno Leandro
tipo coalesce( (select 1 from tabx where y = 1) ,0)::integer
Gostei + 0
25/07/2012
Cleber Campos.
Ola Bruno,
nao funcionou.
alguma outra sugestao.?
Grato.
Cleber
Gostei + 0
25/07/2012
Deivison Melo
Select
NF.Datamovimento
, M.Codprodutomov
, M.Descricao
, CL.Numclassificacao
, M.Quantmovimentada
, M.Valorunitario
, Rs_rounddec( M.Quantmovimentada * M.Valorunitario, 2 ) As ValorTotal
, Coalesce( ( Select First 1 ME.Aliqicm
From Movestoque ME
Where ME.Codprodutomov = M.Codprodutomov
And ME.Codoperacao In (2,4)
And ME.Empresa = 1
And ME.Datamovimentoestoque <= NF.Datamovimento) , 0 ) As AliqICM,
Coalesce( ( Select First 1 ME.Aliqipi
From Movestoque ME
Where ME.Codprodutomov = M.Codprodutomov
And ME.Codoperacao In (2,4)
And ME.Empresa = 1
And ME.Datamovimentoestoque <= NF.Datamovimento
) , 0 ) As AliqIPI
, CL.Flagsubtributaria
, Decode(M.Tipomovimento,1,E,S) TipoMovimento
/*Case When M.Tipomovimento = 1 Then E Else S End AS TipoMovimento*/
, M.Numdocumentoes
From Notasfiscais NF Left Join Movestoque M On M.Empresa = NF.Empresa
Where ( NF.Empresa = 1 And NF.Codcontrole = 79196 AND NF.Tipocontrole = 2 )
and M.Tipocontrole = NF.Tipocontrole
and M.Codcontrole = NF.Codcontrole Left Join Classfiscais CL On CL.Codigo = M.Codclassfiscal
or ( NF.Empresa = 1 AND NF.Codcontrole = 35448 And NF.Tipocontrole = 1 )
Order BY M.Numdocumentoes, M.Tipomovimento Desc
PS. Infelizmente não tenho como testar aqui, pois não tenho o firebird instalado no trabalho (além de não ter as tabelas)...
Mas acho que vai rodar!!
Gostei + 0
25/07/2012
Cleber Campos.
o problema está nessa instrucao aqui
Select
...
...
, Coalesce( ( Select First 1 ME.Aliqipi
From Movestoque ME
Where ME.Codprodutomov = M.Codprodutomov
And ME.Codoperacao In (2,4)
And ME.Empresa = 1
And ME.Datamovimentoestoque <= NF.Datamovimento
) , 0 ) As AliqIPI
...
From ...
Acontece que, o parametro do Coalesce = 0, se eu mudar o parametro para qualquer coisa difirente de 0 (zero), funciona normal.
Muitissimo estranho.
fico no aguardo e obrigado.
Cleber
Gostei + 0
25/07/2012
Deivison Melo
Tem como vc disponibilizar o ddl de suas tabelas ou me enviar por e-mail juntamente com a sua instrunção sql para que porra ajustar e devolver para vc de forma funcional?
Sem mais, grato!
Gostei + 0
25/07/2012
Deivison Melo
Estranho...
Tem como vc disponibilizar o ddl de suas tabelas ou me enviar por e-mail juntamente com a sua instrunção sql para que *possa* ajustar e devolver para vc de forma funcional?
Sem mais, grato!
Gostei + 0
25/07/2012
Cleber Campos.
lembrando que: no ibexpert, funciona normal,
somente no d2010 que nao vai.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)