Em 9 de agosto de 2011 14:36,  <[email protected]> escreveu:
> Boa Tarde
>
> Essa query abaixa funciona corretamente em sqlserver/oracle/mysql mas
> falha com postgresql 9.0
>
> como fazer ela funcionar, ja que ela usa nomes de coluna de as como
> parametros
>
> SELECT    X.* FROM
>   (SELECT    A.IDFUNC,A.NOME,
>   A.NRECNO,A.IDEMPRESA,
>   A.IDFORMPAG,A.CTACC,
>   F.DESCR AS "EMPRESA",U.NOME_COMPL,
>   A.ALT_DATA,A.ALT_HORA,
>   (SELECT B.IDCATFUNC FROM (SELECT W005.* FROM "emprego" W005 WHERE
> (W005.DT__HIST = (SELECT MAX(W006.DT__HIST) FROM "dado_emprego" W006
> WHERE W005.IDFUNC =W006.IDFUNC AND W006.DT__HIST <= '20110808'))) B
> WHERE B.IDFUNC = A.IDFUNC ) AS "IDCATFUNC",(SELECT B.DT_ADMISSA FROM
> (SELECT W005.* FROM "dado_emprego" W005 WHERE (W005.DT__HIST = (SELECT
> MAX(W006.DT__HIST) FROM "dado_emprego" W006 WHERE W005.IDFUNC
> =W006.IDFUNC AND W006.DT__HIST <= '20110808'))) B WHERE B.IDFUNC =
> A.IDFUNC ) AS "DT_ADMISSA",
>   (SELECT R.DTDESLIG FROM (SELECT W008.* FROM "rescisao_func" W008 WHERE
> (W008.DT__HIST = (SELECT MAX(W009.DT__HIST) FROM "rescisao_func" W009
> WHERE W008.IDFUNC =W009.IDFUNC AND W009.DT__HIST <= '20110808'))) R
> WHERE R.IDFUNC = A.IDFUNC ) AS "DTDESLIG" FROM
>   (SELECT    W002.* FROM
>   "dados_pessoas" W002
>  WHERE
> (W002.DT__HIST = (SELECT MAX(W003.DT__HIST) FROM "dados_pessoas" W003
> WHERE W002.IDFUNC =W003.IDFUNC AND W003.DT__HIST <= '20110808'))  ) A
>   LEFT JOIN "usuarios" U ON A.ALT_USUA = U.NOME,
>   "empresas" F
>  WHERE
> A.EHAUTONOMO != 'S'    AND ( A.NOME IS NULL OR A.IDFORMPAG IS NULL OR (
> A.IDFORMPAG IS NOT NULL AND A.IDFORMPAG IN ('03','05') AND A.CTACC IS NULL
> ) )    AND A.IDEMPRESA = F.CODIGO    AND ( F.CODIGO IN
> (1,2,3,100,110,120,130,131,140,141,142,143,150) ) ) X
>  WHERE
> X.DTDESLIG IS NULL    OR X.DTDESLIG >= '20110801'
>
> o erro e:
> ERRO:  coluna x.dtdeslig não existe
> LINE 18: X.DTDESLIG IS NULL    OR X.DTDESLIG >= '20110801'  e essa coluna
> e criada como nome de um dos selects acima
>
> Atenciosamente
> Luiz


dtdeslig é diferente de "DTDESLIG" (mas é igual a "dtdeslig").
Veja delimited identifier or quoted identifier em:
http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a