Erro Data type unknown.

07/12/2005

9

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

Que erro é este....

Não tem nenhum tipo de dados incorreto no select...

segue abaixo...

select distinct sum(CB0100.C_QTD) as D_SUM,
CA0500.C_CESTA_BASICA_COLABORADOR, CA0500.C_NOME_COLABORADOR,
FR0100.C_NOME_FRN from CB0100, CA0500, FR0100 where CB0100.C_MES = 12
and CB0100.C_ANO = 2005 and CB0100.C_COD_COLABORADOR =
CA0500.C_COD_COLABORADOR and FR0100.C_COD_FRN =
CA0500.C_COD_FORNECEDOR_COLABORADOR and( CA0500.C_COD_COLABORADOR =
´000000000000033´) group by CB0100.C_COD_COLABORADOR,
CA0500.C_COD_COLABORADOR, CA0500.C_NOME_COLABORADOR,
CA0500.C_CESTA_BASICA_COLABORADOR, FR0100.C_NOME_FRN
Union select
distinct CA0500.C_COD_COLABORADOR, CA0500.C_NOME_COLABORADOR,
CA0500.C_CESTA_BASICA_COLABORADOR, FR0100.C_NOME_FRN from CA0500, FR0100 where
(CA0500.C_COD_COLABORADOR =
´000000000000033´) and CA0500.C_CESTA_BASICA_COLABORADOR = ´S´ and
FR0100.C_COD_FRN = CA0500.C_COD_FORNECEDOR_COLABORADOR group by
CA0500.C_COD_COLABORADOR, CA0500.C_NOME_COLABORADOR,
CA0500.C_CESTA_BASICA_COLABORADOR, FR0100.C_NOME_FRN

Alguém sabe o por quê deste erro ?????????????


Responder

Posts

08/12/2005

Cabelo

Sobe..


Responder

08/12/2005

Edilcimar

este erro na só em runtime ou também no designtime?


Responder

08/12/2005

Cabelo

este erro na só em runtime ou também no designtime?


Dá o erro tanto em Run como em Design.......


Só no SQL Explorer que não........


Responder

08/12/2005

Edilcimar

Qual o bd e quais os componentes que vc está usando?
tente diminuir o número de linhas e vá tentando ´rodar´ e depois vá aos poucos acrescentando ítens(vai dar trabalho), o código é muito grande, eu começo a dormir quando chego na metade!


Responder

08/12/2005

Cabelo

Eu uso Firebird...

os componentes são DBExpress...

Mas as minhas tabelas, deste join, tem poucos registros, e o select não é grande, aliás é muito pequeno... deve conter uns três ou quatro registros...

ou eu não entendí o que vc quis dizer..

:oops:


Responder

08/12/2005

Edilcimar

exemplo do que falei
select distinct sum(CB0100.C_QTD) as D_SUM,
CA0500.C_CESTA_BASICA_COLABORADOR from xxxxx

depois

select distinct sum(CB0100.C_QTD) as D_SUM,
CA0500.C_CESTA_BASICA_COLABORADOR, CA0500.C_NOME_COLABORADOR from xxxxx

depois
select distinct sum(CB0100.C_QTD) as D_SUM,
CA0500.C_CESTA_BASICA_COLABORADOR, CA0500.C_NOME_COLABORADOR,
FR0100.C_NOME_FRN from CB0100, CA0500, FR0100 where CB0100.C_MES = 12
and CB0100.C_ANO = 2005 and CB0100.C_COD_COLABORADOR =
CA0500.C_COD_COLABORADOR from xxxxx

etc, etc, etc, são muitos campos para serem lidos, e como vc usa código para as tabelas dá sono!


Responder
select distinct
  sum(CB0100.C_QTD) as D_SUM,
  CA0500.C_CESTA_BASICA_COLABORADOR,
  CA0500.C_NOME_COLABORADOR,
  FR0100.C_NOME_FRN
from
  CB0100, CA0500, FR0100 
where
  CB0100.C_MES = 12 and CB0100.C_ANO = 2005
  and CB0100.C_COD_COLABORADOR = CA0500.C_COD_COLABORADOR
  and FR0100.C_COD_FRN = CA0500.C_COD_FORNECEDOR_COLABORADOR
  and( CA0500.C_COD_COLABORADOR = ´000000000000033´) 
group by
  CB0100.C_COD_COLABORADOR, CA0500.C_COD_COLABORADOR,
  CA0500.C_NOME_COLABORADOR, CA0500.C_CESTA_BASICA_COLABORADOR,
  FR0100.C_NOME_FRN

Union

select distinct
  CA0500.C_COD_COLABORADOR, 
  CA0500.C_NOME_COLABORADOR, 
  CA0500.C_CESTA_BASICA_COLABORADOR,
  FR0100.C_NOME_FRN
from 
  CA0500, FR0100 
where
  (CA0500.C_COD_COLABORADOR = ´000000000000033´) 
  and CA0500.C_CESTA_BASICA_COLABORADOR = ´S´ 
  and FR0100.C_COD_FRN = CA0500.C_COD_FORNECEDOR_COLABORADOR
group by
  CA0500.C_COD_COLABORADOR, CA0500.C_NOME_COLABORADOR,
  CA0500.C_CESTA_BASICA_COLABORADOR, FR0100.C_NOME_FRN


o que ocorre é a diferença nos campos das instruções.
- na primeira instrução são os seguintes campos:
D_SUM                       -> qual o tipo?
C_CESTA_BASICA_COLABORADOR  -> qual o tipo?
C_NOME_COLABORADOR          -> qual o tipo?
C_NOME_FRN                  -> qual o tipo?

- na segunda instrução são os seguintes campos:
C_COD_COLABORADOR          -> é similar ao D_SUM anterior?
C_NOME_COLABORADOR         -> é similar ao C_CESTA_BASICA_COLABORADOR anterior?
C_CESTA_BASICA_COLABORADOR -> é similar ao C_NOME_COLABORADOR anterior?
C_NOME_FRN                 -> provavelmente o único que está correto


os campos similares devem estar na mesma ordem nas duas instruções!
select distinct
  sum(CB0100.C_QTD) as D_SUM,
  CA0500.C_CESTA_BASICA_COLABORADOR,
  CA0500.C_NOME_COLABORADOR,
  FR0100.C_NOME_FRN
from
  CB0100, CA0500, FR0100 
where
  CB0100.C_MES = 12 and CB0100.C_ANO = 2005
  and CB0100.C_COD_COLABORADOR = CA0500.C_COD_COLABORADOR
  and FR0100.C_COD_FRN = CA0500.C_COD_FORNECEDOR_COLABORADOR
  and( CA0500.C_COD_COLABORADOR = ´000000000000033´) 
group by
  CB0100.C_COD_COLABORADOR, CA0500.C_COD_COLABORADOR,
  CA0500.C_NOME_COLABORADOR, CA0500.C_CESTA_BASICA_COLABORADOR,
  FR0100.C_NOME_FRN

Union

select distinct
  CA0500.C_COD_COLABORADOR, 
  CA0500.C_CESTA_BASICA_COLABORADOR,
  CA0500.C_NOME_COLABORADOR, 
  FR0100.C_NOME_FRN
from 
  CA0500, FR0100 
where
  (CA0500.C_COD_COLABORADOR = ´000000000000033´) 
  and CA0500.C_CESTA_BASICA_COLABORADOR = ´S´ 
  and FR0100.C_COD_FRN = CA0500.C_COD_FORNECEDOR_COLABORADOR
group by
  CA0500.C_COD_COLABORADOR, CA0500.C_NOME_COLABORADOR,
  CA0500.C_CESTA_BASICA_COLABORADOR, FR0100.C_NOME_FRN



Responder

08/12/2005

Cabelo

Eu refiz como vc me passou emerson e deu o mesmo erro...


já tinha feito assim, mas mesmo assim não tinha dado certo...

o interessante e preocupante é que no SQLExplorer deu certo... conseguí fazer o select....


Responder
vocÊ está fazendo isso com qual componente? você tem campos persistentes nesse componente?


Responder

09/12/2005

Cabelo

Eu uso DBExpress

Não tenho campos persistentes nestes componentes..

É tudo dinâmico...

Acho que o problema está no SQL....

quando tiro o SUM... funciona que é uma beleza...

já com o Sum... dáop bendito erro...


Responder
eu já perguntei isso mas vou perguntar de novo:

[b:4a8be5c0db]´[i:4a8be5c0db]sum(CB0100.C_QTD) as D_SUM[/i:4a8be5c0db]´ (1a. select) tem o mesmo tipo de resultado que ´[i:4a8be5c0db]CA0500.C_COD_COLABORADOR[/i:4a8be5c0db]´ (2a. select)?[/b:4a8be5c0db]

talvez o ´[i:4a8be5c0db]sum(CB0100.C_QTD) as D_SUM[/i:4a8be5c0db]´ retorne um valor decimal, enquanto que ´[i:4a8be5c0db]CA0500.C_COD_COLABORADOR[/i:4a8be5c0db]´ pode retornar um inteiro.


Responder

15/12/2005

Cabelo

Era exatamente isso..... valeu mesmo... foi só inserir masi campo com um SUM, que deu tudo certo...

Muito obrigado pela ajuda..


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar