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

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

Responder a