Fórum Ajuda com query maluca #44459
24/05/2004
0
Gente
Eu tive que traduzir uma query de um programador do Sql Server para o Firebird. Porem ainda nao estou conseguindo rodar a query ... esta e a query:
SELECT COMPROMISSO.IDCOMPROMISSO, COMPROMISSO.DATACOMPROMISSO,
COMPROMISSO.HORACOMPROMISSO, COMPROMISSO.DESCRICAOCOMPROMISSO,
PESSOACOMPR.NOME, COMPROMISSO.LOCALCOMPROMISSO, COMPROMISSO.OBSCOMP,
PASTA.CODIGO, TIPOACAO.NOMETIPOACAO, PESSOACLIENTE.NOME AS PESSOACLI,
PROCESSO.PROTOCOLOINICIAL, PESSOACONTR.NOME AS PESSOACONT,
COALESCE(CAST(PROCESSO.NUMJURISDICAO as VARCHAR(100)),´´) +
COALESCE(PROCESSO.SUFIXO, ´´) || ´ ´ || COALESCE(JURISDICAO.NOMEJURISDICAO, ´´) || ´ - ´ ||
COALESCE(PESSOAJUIZO.NOME,´´) AS EXPR1
FROM PASTA
LEFT JOIN PROCESSO ON PASTA.IDPASTA = PROCESSO.IDPASTAPROC
LEFT JOIN JURISDICAO ON JURISDICAO.IDJURISDICAO = PROCESSO.IDJURISDICAO
LEFT JOIN PESSOA PESSOACLIENTE ON PASTA.IDPESCLIPRINC = PESSOACLIENTE.IDPESSOA
LEFT JOIN PESSOA PESSOAJUIZO ON PESSOAJUIZO.IDPESSOA = PROCESSO.IDPESSOAJUIZO
LEFT JOIN PESSOA PESSOACONTR ON PESSOACONTR.IDPESSOA = PROCESSO.IDPESADVERSOPRINC
LEFT JOIN TIPOACAO ON TIPOACAO.IDTIPOACAO = PROCESSO.IDTIPOACAOPROC
RIGHT JOIN COMPROMISSO ON PASTA.IDPASTA = COMPROMISSO.IDPASTACOMPROMISSO
LEFT JOIN PESSOA PESSOACOMPR ON PESSOACOMPR.IDPESSOA = COMPROMISSO.IDPESSOACOMPROMISSO
WHERE ((UPPER(COMPROMISSO.TIPOCOMPROMISSO)<>UPPER(´PARTICULAR´)
AND ((PESSOACOMPR.IDESCRITORIO=3) OR (PESSOACOMPR.IDESCRITORIO IS NULL)) )
AND ((DATEPART (´WK´, COMPROMISSO.DATACOMPROMISSO)) = (DATEPART (´WK´, CAST(´2003-08-28´ as TIMESTAMP)))
AND (DATEPART (´YY´, COMPROMISSO.DATACOMPROMISSO)) = (DATEPART (´YY´, CAST(´2003-08-28´ as TIMESTAMP)))
OR (((DATEPART (´YY´, COMPROMISSO.DATACOMPROMISSO)) - (DATEPART (´YY´, CAST(´2003-08-28´ as TIMESTAMP)))
IN (-1, 0, 1) )
AND ((DATEPART (´WK´, COMPROMISSO.DATACOMPROMISSO)) - (DATEPART (´WK´, CAST(´2003-08-28´ as TIMESTAMP)))
IN (-52, 0, 52)) AND (ABS(CAST(CAST(COMPROMISSO.DATACOMPROMISSO as CHAR) as INT) - CAST(CAST(CAST(´2003-08-28´ as TIMESTAMP) as CHAR) as INT)) < 7)) )) OR ((UPPER(COMPROMISSO.TIPOCOMPROMISSO)=UPPER(´PARTICULAR´)) AND ((DATEPART (´WK´, COMPROMISSO.DATACOMPROMISSO)) = (DATEPART (´WK´, CAST(´2003-08-28´ as TIMESTAMP))) AND (DATEPART (´YY´, COMPROMISSO.DATACOMPROMISSO)) = (DATEPART (´YY´, CAST(´2003-08-28´ as TIMESTAMP))) OR (((DATEPART (´YY´, COMPROMISSO.DATACOMPROMISSO)) - (DATEPART (´YY´, CAST(´2003-08-28´ as TIMESTAMP))) IN (-1, 0, 1)) AND ((DATEPART (´WK´, COMPROMISSO.DATACOMPROMISSO)) - (DATEPART (´WK´, CAST(´2003-08-28´ as TIMESTAMP))) IN (-52, 0, 52)) AND (ABS(CAST(CAST(COMPROMISSO.DATACOMPROMISSO as CHAR) as INT) - CAST(CAST(CAST(´2003-08-28´ as TIMESTAMP) as CHAR) as INT)) < 7)) ) AND (COMPROMISSO.IDPESSOACOMPROMISSO = 16) ) ORDER BY COMPROMISSO.DATACOMPROMISSO, COMPROMISSO.HORACOMPROMISSO
onde ABS e DATEPART sao udfs criadas por mim que sao identicas as funcoes de mesmo nome do sqlserver ...
Rafael
Eu tive que traduzir uma query de um programador do Sql Server para o Firebird. Porem ainda nao estou conseguindo rodar a query ... esta e a query:
SELECT COMPROMISSO.IDCOMPROMISSO, COMPROMISSO.DATACOMPROMISSO,
COMPROMISSO.HORACOMPROMISSO, COMPROMISSO.DESCRICAOCOMPROMISSO,
PESSOACOMPR.NOME, COMPROMISSO.LOCALCOMPROMISSO, COMPROMISSO.OBSCOMP,
PASTA.CODIGO, TIPOACAO.NOMETIPOACAO, PESSOACLIENTE.NOME AS PESSOACLI,
PROCESSO.PROTOCOLOINICIAL, PESSOACONTR.NOME AS PESSOACONT,
COALESCE(CAST(PROCESSO.NUMJURISDICAO as VARCHAR(100)),´´) +
COALESCE(PROCESSO.SUFIXO, ´´) || ´ ´ || COALESCE(JURISDICAO.NOMEJURISDICAO, ´´) || ´ - ´ ||
COALESCE(PESSOAJUIZO.NOME,´´) AS EXPR1
FROM PASTA
LEFT JOIN PROCESSO ON PASTA.IDPASTA = PROCESSO.IDPASTAPROC
LEFT JOIN JURISDICAO ON JURISDICAO.IDJURISDICAO = PROCESSO.IDJURISDICAO
LEFT JOIN PESSOA PESSOACLIENTE ON PASTA.IDPESCLIPRINC = PESSOACLIENTE.IDPESSOA
LEFT JOIN PESSOA PESSOAJUIZO ON PESSOAJUIZO.IDPESSOA = PROCESSO.IDPESSOAJUIZO
LEFT JOIN PESSOA PESSOACONTR ON PESSOACONTR.IDPESSOA = PROCESSO.IDPESADVERSOPRINC
LEFT JOIN TIPOACAO ON TIPOACAO.IDTIPOACAO = PROCESSO.IDTIPOACAOPROC
RIGHT JOIN COMPROMISSO ON PASTA.IDPASTA = COMPROMISSO.IDPASTACOMPROMISSO
LEFT JOIN PESSOA PESSOACOMPR ON PESSOACOMPR.IDPESSOA = COMPROMISSO.IDPESSOACOMPROMISSO
WHERE ((UPPER(COMPROMISSO.TIPOCOMPROMISSO)<>UPPER(´PARTICULAR´)
AND ((PESSOACOMPR.IDESCRITORIO=3) OR (PESSOACOMPR.IDESCRITORIO IS NULL)) )
AND ((DATEPART (´WK´, COMPROMISSO.DATACOMPROMISSO)) = (DATEPART (´WK´, CAST(´2003-08-28´ as TIMESTAMP)))
AND (DATEPART (´YY´, COMPROMISSO.DATACOMPROMISSO)) = (DATEPART (´YY´, CAST(´2003-08-28´ as TIMESTAMP)))
OR (((DATEPART (´YY´, COMPROMISSO.DATACOMPROMISSO)) - (DATEPART (´YY´, CAST(´2003-08-28´ as TIMESTAMP)))
IN (-1, 0, 1) )
AND ((DATEPART (´WK´, COMPROMISSO.DATACOMPROMISSO)) - (DATEPART (´WK´, CAST(´2003-08-28´ as TIMESTAMP)))
IN (-52, 0, 52)) AND (ABS(CAST(CAST(COMPROMISSO.DATACOMPROMISSO as CHAR) as INT) - CAST(CAST(CAST(´2003-08-28´ as TIMESTAMP) as CHAR) as INT)) < 7)) )) OR ((UPPER(COMPROMISSO.TIPOCOMPROMISSO)=UPPER(´PARTICULAR´)) AND ((DATEPART (´WK´, COMPROMISSO.DATACOMPROMISSO)) = (DATEPART (´WK´, CAST(´2003-08-28´ as TIMESTAMP))) AND (DATEPART (´YY´, COMPROMISSO.DATACOMPROMISSO)) = (DATEPART (´YY´, CAST(´2003-08-28´ as TIMESTAMP))) OR (((DATEPART (´YY´, COMPROMISSO.DATACOMPROMISSO)) - (DATEPART (´YY´, CAST(´2003-08-28´ as TIMESTAMP))) IN (-1, 0, 1)) AND ((DATEPART (´WK´, COMPROMISSO.DATACOMPROMISSO)) - (DATEPART (´WK´, CAST(´2003-08-28´ as TIMESTAMP))) IN (-52, 0, 52)) AND (ABS(CAST(CAST(COMPROMISSO.DATACOMPROMISSO as CHAR) as INT) - CAST(CAST(CAST(´2003-08-28´ as TIMESTAMP) as CHAR) as INT)) < 7)) ) AND (COMPROMISSO.IDPESSOACOMPROMISSO = 16) ) ORDER BY COMPROMISSO.DATACOMPROMISSO, COMPROMISSO.HORACOMPROMISSO
onde ABS e DATEPART sao udfs criadas por mim que sao identicas as funcoes de mesmo nome do sqlserver ...
Rafael
Colutti
Curtir tópico
+ 0
Responder
Posts
24/05/2004
Afarias
qual o erro (mensagem)?!
T+
T+
Responder
Gostei + 0
25/05/2004
Colutti
Oi
a mensagem e :
expression evaluation not supported
Rafael
a mensagem e :
expression evaluation not supported
Rafael
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)