Fórum Ajuda com SQL #52898

23/09/2005

0

Ola estou tentando fazer essa selecao , mas retorna o erro :

ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
Token unknown - line 15, char 4
FROM

==============
esse eh o SQL
O que ha de errado ?

SELECT
MAN.COD_EMPRESA,
MAN.DAT_MANIFESTO,
MAN.NUM_MANIFESTO,
IMA.NUM_CONHECIMENTO,
C.COD_CLIENTE_DESTINATARIO,
CLI.RAZ_CLI_FOR AS RAZ_CLI_REMETENTE,
MAN.VLR_TOTAL_FRETE,
SUM(C.VLR_FRETE_TOTAL) AS VLR_FRETE_BRUTO,
SUM(C.PES_CARGA) AS PES_CARGA,

CAST(((SUM(MAN.VLR_FRETE_TONELADA)*SUM(C.PES_CARGA))/1000)AS NUMERIC(15,2)) AS VLR_FRETE_CARRETEIRO,

CAST((SUM(C.PES_CARGA)/1000)*8 AS NUMERIC (15,2)) AS CUSTO_FIXO_TONELADA,

( SELECT
CAST(SUM(((PAR.VLR_TITULO*0.10)*(PAR.VCT_TITULO-C.DAT_CADASTRO))/100)
FROM PARCELAS_CONHECIMENTO PAR
WHERE PAR.COD_EMPRESA=IMA.COD_EMPRESA
AND PAR.NUM_CONHECIMENTO=IMA.NUM_CONHECIMENTO)AS NUMERIC(15,2)) AS VLR_FINANCEIRO

FROM ITENS_MANIFESTO IMA

JOIN MANIFESTOS MAN ON
IMA.COD_EMPRESA=MAN.COD_EMPRESA AND
IMA.NUM_MANIFESTO=MAN.NUM_MANIFESTO

JOIN CONHECIMENTOS C ON
C.COD_EMPRESA=IMA.COD_EMPRESA AND
C.NUM_CONHECIMENTO=IMA.NUM_CONHECIMENTO AND
C.SIT_CONHECIMENTO=´PR´

JOIN CLIENTES_FORNECEDORES CLI ON
CLI.COD_CLI_FOR=COD_CLIENTE_DESTINATARIO

WHERE MAN.SIT_MANIFESTO<>´CA´
AND MAN.COD_EMPRESA=1
AND MAN.NUM_MANIFESTO=4440


GROUP BY
MAN.COD_EMPRESA,
MAN.DAT_MANIFESTO,
MAN.NUM_MANIFESTO,
C.COD_CLIENTE_DESTINATARIO,
CLI.RAZ_CLI_FOR,
MAN.VLR_TOTAL_FRETE,
IMA.NUM_CONHECIMENTO

ORDER BY 1,3,4


Craudio

Craudio

Responder

Posts

23/09/2005

Afarias

no código abaixo vc deu um CAST no select inteiro!! isso não pode:

... (SELECT CAST(SUM(((PAR.VLR_TITULO*0.10)*(PAR.VCT_TITULO-C.DAT_CADASTRO))/100)
FROM PARCELAS_CONHECIMENTO PAR
WHERE PAR.COD_EMPRESA=IMA.COD_EMPRESA
AND PAR.NUM_CONHECIMENTO=IMA.NUM_CONHECIMENTO)AS NUMERIC(15,2)) AS VLR_FINANCEIRO...


o CAST deve ser apenas no campo::


... (SELECT CAST(SUM(((PAR.VLR_TITULO*0.10)*(PAR.VCT_TITULO-C.DAT_CADASTRO))/100) AS NUMERIC(15,2))
FROM PARCELAS_CONHECIMENTO PAR
WHERE PAR.COD_EMPRESA=IMA.COD_EMPRESA
AND PAR.NUM_CONHECIMENTO=IMA.NUM_CONHECIMENTO) AS VLR_FINANCEIRO...


T+


Responder

Gostei + 0

23/09/2005

Craudio

TENTEI COMO NO EXEMPLO ABAIXO MAS DESSA VEZ MOSTRA O ERRO

´
ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -104
password required ´

OBRIGADO PELA RESPOSTA

SELECT
MAN.COD_EMPRESA,
MAN.DAT_MANIFESTO,
MAN.NUM_MANIFESTO,
IMA.NUM_CONHECIMENTO,
C.COD_CLIENTE_DESTINATARIO,
CLI.RAZ_CLI_FOR AS RAZ_CLI_REMETENTE,
MAN.VLR_TOTAL_FRETE,
SUM(C.VLR_FRETE_TOTAL) AS VLR_FRETE_BRUTO,
SUM(C.PES_CARGA) AS PES_CARGA,

CAST(((SUM(MAN.VLR_FRETE_TONELADA)*SUM(C.PES_CARGA))/1000)AS NUMERIC(15,2)) AS VLR_FRETE_CARRETEIRO,

CAST((SUM(C.PES_CARGA)/1000)*8 AS NUMERIC (15,2)) AS CUSTO_FIXO_TONELADA,

(SELECT
CAST((SUM(((PAR.VLR_TITULO*0.10)*(PAR.VCT_TITULO-C.DAT_CADASTRO))/100))AS NUMERIC(15,2))
FROM PARCELAS_CONHECIMENTO PAR
WHERE PAR.COD_EMPRESA=IMA.COD_EMPRESA
AND PAR.NUM_CONHECIMENTO=IMA.NUM_CONHECIMENTO) AS VLR_FINANCEIRO



FROM ITENS_MANIFESTO IMA

JOIN MANIFESTOS MAN ON
IMA.COD_EMPRESA=MAN.COD_EMPRESA AND
IMA.NUM_MANIFESTO=MAN.NUM_MANIFESTO

JOIN CONHECIMENTOS C ON
C.COD_EMPRESA=IMA.COD_EMPRESA AND
C.NUM_CONHECIMENTO=IMA.NUM_CONHECIMENTO AND
C.SIT_CONHECIMENTO=´PR´

JOIN CLIENTES_FORNECEDORES CLI ON
CLI.COD_CLI_FOR=COD_CLIENTE_DESTINATARIO

WHERE MAN.SIT_MANIFESTO<>´CA´
AND MAN.COD_EMPRESA=1
AND MAN.NUM_MANIFESTO=4440


GROUP BY
MAN.COD_EMPRESA,
MAN.DAT_MANIFESTO,
MAN.NUM_MANIFESTO,
C.COD_CLIENTE_DESTINATARIO,
CLI.RAZ_CLI_FOR,
MAN.VLR_TOTAL_FRETE,
IMA.NUM_CONHECIMENTO

ORDER BY 1,3,4


Responder

Gostei + 0

23/09/2005

Afarias

|SQL error code = -104
|password required ´

interessante... nunca vi tal erro... ISC ERROR = 335544569 deveria estar associado a SQL ERROR = -902 (IB6.0); ´password required´ deveria estar associado à ISC ERROR = 335544750 e a princípio não faz sentido nesta operação (admitindo q vc esteja devidamente conectado ao banco de dados)

Qual a versão do IB ou FB que vc está usando? Quais os componentes que está usando e a versão?

Eu não sei, mas *talves* essa sua consulta tenha ´atingido´ algum bug. Dê uma olhada nas últimas entradas no arquivo de log do IB/FB


T+


Responder

Gostei + 0

23/09/2005

Craudio

Estou usando o Firebird v1.5.2 rodando no Slackware 10.5.
E estou conectado ao banco pelo IBOConsole versao 1.1.2.19.


Obrigado mais uma vez.


Responder

Gostei + 0

23/09/2005

Emerson Nascimento

tente assim:

SELECT
  MAN.COD_EMPRESA,
  MAN.DAT_MANIFESTO,
  MAN.NUM_MANIFESTO,
  IMA.NUM_CONHECIMENTO,
  C.COD_CLIENTE_DESTINATARIO,
  CLI.RAZ_CLI_FOR AS RAZ_CLI_REMETENTE,
  MAN.VLR_TOTAL_FRETE,

  SUM(C.VLR_FRETE_TOTAL) AS VLR_FRETE_BRUTO,
  SUM(C.PES_CARGA) AS PES_CARGA,

  CAST( (SUM(MAN.VLR_FRETE_TONELADA * C.PES_CARGA) / 1000) AS NUMERIC(15,2)) AS VLR_FRETE_CARRETEIRO,

  CAST( ((SUM(C.PES_CARGA)/1000) * 8) AS NUMERIC (15,2)) AS CUSTO_FIXO_TONELADA,

  (SELECT
     CAST( ( SUM( (PAR.VLR_TITULO*0.10)*(PAR.VCT_TITULO-C.DAT_CADASTRO) ) /100) AS NUMERIC(15,2))
   FROM PARCELAS_CONHECIMENTO PAR
   WHERE PAR.COD_EMPRESA=MAN.COD_EMPRESA
   AND PAR.NUM_CONHECIMENTO=IMA.NUM_CONHECIMENTO) AS VLR_FINANCEIRO
-- note que, no relacionamento, agora está sendo 
-- utilizado MAN.COD_EMPRESA ao invés de IMA.COD_EMPRESA,
-- pois o agrupamento está sendo feito pelo MAN.COD_EMPRESA

FROM
  ITENS_MANIFESTO IMA

JOIN MANIFESTOS MAN
  ON (IMA.COD_EMPRESA=MAN.COD_EMPRESA AND
      IMA.NUM_MANIFESTO=MAN.NUM_MANIFESTO)

JOIN CONHECIMENTOS C
  ON (C.COD_EMPRESA=IMA.COD_EMPRESA AND
      C.NUM_CONHECIMENTO=IMA.NUM_CONHECIMENTO AND
      C.SIT_CONHECIMENTO=´PR´)

JOIN CLIENTES_FORNECEDORES CLI
  ON (CLI.COD_CLI_FOR=COD_CLIENTE_DESTINATARIO)
WHERE
  MAN.SIT_MANIFESTO<>´CA´
  AND MAN.COD_EMPRESA=1
  AND MAN.NUM_MANIFESTO=4440

GROUP BY
  MAN.COD_EMPRESA,
  MAN.DAT_MANIFESTO,
  MAN.NUM_MANIFESTO,
  C.COD_CLIENTE_DESTINATARIO,
  CLI.RAZ_CLI_FOR,
  MAN.VLR_TOTAL_FRETE,
  IMA.NUM_CONHECIMENTO
ORDER BY
  MAN.COD_EMPRESA,
  MAN.NUM_MANIFESTO,
  IMA.NUM_CONHECIMENTO



Responder

Gostei + 0

23/09/2005

Afarias

Firebird v1.5.2 usando IBO... pq vc não testa usando IBX para ver se dá o mesmo problema. Outro ponto é olhar o arquivo de log:

/opt/firebird/bin/firebird.log


T+


Responder

Gostei + 0

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

Aceitar