Data mais atual

12/04/2013

1

Ola pessoal,

Sou novo em PL/SQL e gostaria de uma ajuda.
Preciso da data mais atual de cada registro, que corresponde ao campo ENT.ENT_DT_ENTREGA, pois geralmente cada registro possui três datas cadastradas. No resultado deste código é apresentado todas as datas.

select EST.EST_ST_CODIGO,
       BL.EMP_EST_IN_CODIGO,
       EST.EST_ST_NOME,
       EST.CUS_IN_REDUZIDO,
       EST.CUSE_IN_REDUZIDO,
       EST.PRO_IN_REDUZIDO,
       EST.EST_DT_LANCAMENTO,
       BL.BLO_IN_NUMUNIDADES,
       BL.BLO_IN_NUMANDARES,
       ENT.ENT_DT_ENTREGA,
       EST.EST_DT_HABITE
from MGDBM.DBM_ESTRUTURA EST, MGDBM.DBM_BLOCO BL, MGDBM.DBM_ENTREGA ENT
where EST.EST_CH_TIPOESTRUTURA = 'B' AND
      EST.ORG_TAB_IN_CODIGO = BL.ORG_TAB_IN_CODIGO    AND
      EST.ORG_PAD_IN_CODIGO = BL.ORG_PAD_IN_CODIGO    AND
      EST.ORG_IN_CODIGO     = BL.ORG_IN_CODIGO        AND
      EST.ORG_TAU_ST_CODIGO = BL.ORG_TAU_ST_CODIGO    AND
      EST.EST_IN_CODIGO     = BL.EST_IN_CODIGO        AND
      EST.ORG_TAB_IN_CODIGO = ENT.ORG_TAB_IN_CODIGO   AND
      EST.ORG_PAD_IN_CODIGO = ENT.ORG_PAD_IN_CODIGO   AND
      EST.ORG_IN_CODIGO     = ENT.ORG_IN_CODIGO       AND
      EST.ORG_TAU_ST_CODIGO = ENT.ORG_TAU_ST_CODIGO   AND
      EST.EST_IN_CODIGO     = ENT.EST_IN_CODIGO


Conseguiriam me ajudar com essa duvida?

Desde já agradeço,
Abs.
Responder

Posts

12/04/2013

Jair N.

Boa Tarde veja o exemplo abaixo:


SELECT EST.EST_ST_CODIGO
, BL.EMP_EST_IN_CODIGO
, EST.EST_ST_NOME
, EST.CUS_IN_REDUZIDO
, EST.CUSE_IN_REDUZIDO
, EST.PRO_IN_REDUZIDO
, EST.EST_DT_LANCAMENTO
, BL.BLO_IN_NUMUNIDADES
, BL.BLO_IN_NUMANDARES
, ENT.ENT_DT_ENTREGA
, EST.EST_DT_HABITE
FROM MGDBM.DBM_ESTRUTURA EST
INNER JOIN GDBM.DBM_BLOCO BL
ON (BL.ORG_TAB_IN_CODIGO = EST.ORG_TAB_IN_CODIGO)
AND (BL.ORG_PAD_IN_CODIGO = EST.ORG_PAD_IN_CODIGO)
AND (BL.ORG_TAU_ST_CODIGO = EST.ORG_TAU_ST_CODIGO)
AND (BL.ORG_IN_CODIGO = EST.ORG_IN_CODIGO)
AND (BL.EST_IN_CODIGO = EST.EST_IN_CODIGO)
INNER JOIN (SELECT DBM.ORG_TAB_IN_CODIGO
, DBM.ORG_PAD_IN_CODIGO
, DBM.ORG_TAU_ST_CODIGO
, DBM.ORG_IN_CODIGO
, DBM.EST_IN_CODIGO
, MAX (DBM.ENT_DT_ENTREGA) AS ENT_DT_ENTREGA
FROM MGDBM.DBM_ENTREGA DBM
GROUP BY DBM.ORG_TAB_IN_CODIGO
, DBM.ORG_PAD_IN_CODIGO
, DBM.ORG_TAU_ST_CODIGO
, DBM.ORG_IN_CODIGO
, DBM.EST_IN_CODIGO
) ENT
ON (ENT.ORG_TAB_IN_CODIGO = EST.ORG_TAB_IN_CODIGO)
AND (ENT.ORG_PAD_IN_CODIGO = EST.ORG_PAD_IN_CODIGO)
AND (ENT.ORG_TAU_ST_CODIGO = EST.ORG_TAU_ST_CODIGO)
AND (ENT.ORG_IN_CODIGO = EST.ORG_IN_CODIGO)
AND (ENT.EST_IN_CODIGO = EST.EST_IN_CODIGO)
WHERE (EST.EST_CH_TIPOESTRUTURA = 'B')


Ola pessoal,

Sou novo em PL/SQL e gostaria de uma ajuda.
Preciso da data mais atual de cada registro, que corresponde ao campo ENT.ENT_DT_ENTREGA, pois geralmente cada registro possui três datas cadastradas. No resultado deste código é apresentado todas as datas.

select EST.EST_ST_CODIGO,
       BL.EMP_EST_IN_CODIGO,
       EST.EST_ST_NOME,
       EST.CUS_IN_REDUZIDO,
       EST.CUSE_IN_REDUZIDO,
       EST.PRO_IN_REDUZIDO,
       EST.EST_DT_LANCAMENTO,
       BL.BLO_IN_NUMUNIDADES,
       BL.BLO_IN_NUMANDARES,
       ENT.ENT_DT_ENTREGA,
       EST.EST_DT_HABITE
from MGDBM.DBM_ESTRUTURA EST, MGDBM.DBM_BLOCO BL, MGDBM.DBM_ENTREGA ENT
where EST.EST_CH_TIPOESTRUTURA = 'B' AND
      EST.ORG_TAB_IN_CODIGO = BL.ORG_TAB_IN_CODIGO    AND
      EST.ORG_PAD_IN_CODIGO = BL.ORG_PAD_IN_CODIGO    AND
      EST.ORG_IN_CODIGO     = BL.ORG_IN_CODIGO        AND
      EST.ORG_TAU_ST_CODIGO = BL.ORG_TAU_ST_CODIGO    AND
      EST.EST_IN_CODIGO     = BL.EST_IN_CODIGO        AND
      EST.ORG_TAB_IN_CODIGO = ENT.ORG_TAB_IN_CODIGO   AND
      EST.ORG_PAD_IN_CODIGO = ENT.ORG_PAD_IN_CODIGO   AND
      EST.ORG_IN_CODIGO     = ENT.ORG_IN_CODIGO       AND
      EST.ORG_TAU_ST_CODIGO = ENT.ORG_TAU_ST_CODIGO   AND
      EST.EST_IN_CODIGO     = ENT.EST_IN_CODIGO


Conseguiriam me ajudar com essa duvida?

Desde já agradeço,
Abs.
Responder