Fórum Problema com select aninhado #490717

30/08/2014

0

Bom dia galera,
estou com o serio problema aqui, estou tentando fazer um select dentro do outro usando o coalesce, porém dá erro e não sei o porque desse erro.
Já tentei de tudo, parece que nada faz isso funcionar.
Segue:
SELECT B.ID_CXBCO, B.ID_CXBCO || ' - ' || B.NOME AS CAIXA,
coalesce((SELECT SUM(L.VALOR) FROM LANCAMENTO_CAIXA L, CXBCO C WHERE L.CXBCO = C.ID_CXBCO),0) AS CXBCO
 from CXBCO B
WHERE B.STATUS = 'A'


Segue o erro:
Invalid token.
invalid request BLR at offset 142.
context already in use (BLR error).
Claudio Colares

Claudio Colares

Responder

Post mais votado

31/08/2014

Boa noite Claudio.

Tenta esse código abaixo.
#Código
1
2
3
4
SELECT B.ID_CXBCO, B.ID_CXBCO || ' - ' || B.NOME AS CAIXA,
(SELECT Coalesce(SUM(L.VALOR), 0) FROM LANCAMENTO_CAIXA L WHERE L.CXBCO = B.ID_CXBCO) AS CXBCO
from CXBCO B
WHERE B.STATUS = 'A'

Caso não de certo me passe a estrutura dessa tabela que faço alguns testes e te mando o correto.


Meu Patrão, voce é o cara!!!
Muito Obrigado, hoje a cerveja é por minha conta. :)


Que bom que pude de auxiliar.
Precisando abrir um post no forum que auxiliamos.

Alisson Santos

Alisson Santos
Responder

Gostei + 1

Mais Posts

30/08/2014

Alex Lekao

Ola Bom dia!!!

Nao se seria o caso mas no script tem dois nomes iguais.

Sao esses:

AS CXBCO

from CXBCO B


Verifica se nao eh isso.

Abraco.
Responder

Gostei + 0

30/08/2014

Claudio Colares

Ja tentei tirar, mesmo assim não deu certo, me da uma dica...
como ficaria a sintaxe na sua ideia?
Valeu.
Responder

Gostei + 0

30/08/2014

Alex Lekao

Ola,

eu nao sei extamente o que vc esta querendo fazer, mas vc ja tentou executar os selects separadamente e eles funcionaram?

O que exatamente vc quer fazer?

Abraco.
Responder

Gostei + 0

30/08/2014

Anderson

Teste este código:

SELECT B.ID_CXBCO, B.ID_CXBCO || ' - ' || B.NOME AS CAIXA,
coalesce((SELECT SUM(L.VALOR) FROM LANCAMENTO_CAIXA L WHERE L.CXBCO = B.ID_CXBCO),0) AS CXBCO
 from CXBCO B
WHERE B.STATUS = 'A'


Att.

Anderson.
Responder

Gostei + 0

30/08/2014

Claudio Colares

Teste este código:

#Código
1
2
3
4
SELECT B.ID_CXBCO, B.ID_CXBCO || ' - ' || B.NOME AS CAIXA,
coalesce((SELECT SUM(L.VALOR) FROM LANCAMENTO_CAIXA L WHERE L.CXBCO = B.ID_CXBCO),0) AS CXBCO
from CXBCO B
WHERE B.STATUS = 'A'


Att.

Anderson.


SELECT B.ID_CXBCO, B.ID_CXBCO || ' - ' || B.NOME AS CAIXA,
coalesce((SELECT SUM(L.VALOR) FROM LANCAMENTO_CAIXA L WHERE L.CXBCO = B.ID_CXBCO),0) AS CXBCO
 from CXBCO B
WHERE B.STATUS = 'A'


Erro:
Invalid token.
invalid request BLR at offset 136.
context already in use (BLR error).
Responder

Gostei + 0

30/08/2014

Claudio Colares

Teste este código:

#Código
1
2
3
4
SELECT B.ID_CXBCO, B.ID_CXBCO || ' - ' || B.NOME AS CAIXA,
coalesce((SELECT SUM(L.VALOR) FROM LANCAMENTO_CAIXA L WHERE L.CXBCO = B.ID_CXBCO),0) AS CXBCO
from CXBCO B
WHERE B.STATUS = 'A'


Att.

Anderson.


SELECT B.ID_CXBCO, B.ID_CXBCO || ' - ' || B.NOME AS CAIXA,
coalesce((SELECT SUM(L.VALOR) FROM LANCAMENTO_CAIXA L WHERE L.CXBCO = B.ID_CXBCO),0) AS CXBCO
 from CXBCO B
WHERE B.STATUS = 'A'


Erro:
Invalid token.
invalid request BLR at offset 136.
context already in use (BLR error).


Amigo, sinceramente, não sei qual é o mistério desse codigo, pior que pesquisado o erro no google não encontro nada.
Responder

Gostei + 0

30/08/2014

Anderson

Qual ferramenta esta utilizando ?

Fiz um teste, adaptando seu código (mas mantendo a lógica), com correção apenas na 2a linha , no meu banco de dados e funcionou. Utilizei o Flamerobin (http://www.flamerobin.org/).

SELECT B.ID_CXBCO, B.ID_CXBCO || ' - ' || B.NOME AS CAIXA,
coalesce((SELECT SUM(L.VALOR) FROM LANCAMENTO_CAIXA L WHERE L.CXBCO = B.ID_CXBCO),0) AS CXBCO
from CXBCO B
WHERE B.STATUS = 'A'
Responder

Gostei + 0

30/08/2014

Claudio Colares

Mesmo erro! Estou usando o IBEXPERT.
Detalhe, o banco é interbase, será que isso pode está influindo?
Responder

Gostei + 0

30/08/2014

Alisson Santos

Boa noite Claudio.

Tenta esse código abaixo.
SELECT B.ID_CXBCO, B.ID_CXBCO || ' - ' || B.NOME AS CAIXA,
(SELECT Coalesce(SUM(L.VALOR), 0) FROM LANCAMENTO_CAIXA L WHERE L.CXBCO = B.ID_CXBCO) AS CXBCO
from CXBCO B
WHERE B.STATUS = 'A'


Caso não de certo me passe a estrutura dessa tabela que faço alguns testes e te mando o correto.
Responder

Gostei + 0

30/08/2014

Claudio Colares

Boa noite Claudio.

Tenta esse código abaixo.
#Código
1
2
3
4
SELECT B.ID_CXBCO, B.ID_CXBCO || ' - ' || B.NOME AS CAIXA,
(SELECT Coalesce(SUM(L.VALOR), 0) FROM LANCAMENTO_CAIXA L WHERE L.CXBCO = B.ID_CXBCO) AS CXBCO
from CXBCO B
WHERE B.STATUS = 'A'

Caso não de certo me passe a estrutura dessa tabela que faço alguns testes e te mando o correto.


Meu Patrão, voce é o cara!!!
Muito Obrigado, hoje a cerveja é por minha conta. :)
Responder

Gostei + 0

01/09/2014

Alex Lekao

kkkkk....

como nao percebi nem pensei em utilizar o coalesce no calculo e nao no subselect inteiro. kkkkk

Basicamente foi esta a alteracao correto?

Fiquei tao preocupado com o erro que o codigo passou desapercebido. kkkkkkk

Bom para aprendizado.

Abraco.
Responder

Gostei + 0

01/09/2014

Alisson Santos

Sim pois o coalesce é feito em um campo e não no retorno do select sendo assim vai dar erro mesmo.
Responder

Gostei + 0

01/09/2014

Alex Lekao

kkkk...

pois eh... eu tava preocupado com o erro e nao analisei direito o script..

e sempre uso conversoes, mais eh mais no SQL Server.

quase nao uso Firebird e Interbase menos ainda. rsrs

Abraco.
Responder

Gostei + 0

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

Aceitar