Erro Data type unknown.

07/12/2005

5

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