SQL> SELECT * FROM A;NAME       YEAR DA DA MM
---------- ---- -- -- --
AAA        2004 A  B  01
AAA        2003 A  B  01SQL> SELECT * FROM B;ID DT_BEGIN  DT_END
-- --------- ---------
A  06-APR-04 05-APR-04
B  04-APR-04 02-APR-04SQL> SELECT TA.NAME,B.* FROM
  2  (SELECT NAME,YEAR,MM,
  3  DECODE(TO_CHAR(TO_DATE('20030102','YYYYMMDD'),'DD'),
  4  '01',DAY01,'02',DAY02,'ELSE') COLDAY
  5  FROM A) TA,B
  6  WHERE TA.COLDAY=B.ID AND TA.YEAR=TO_CHAR(TO_DATE('20030102','YYYYMMDD'),'YYYY')
  7  AND TA.MM=TO_CHAR(TO_DATE('20030102','YYYYMMDD'),'MM') AND TA.NAME='AAA';NAME       ID DT_BEGIN  DT_END
---------- -- --------- ---------
AAA        B  04-APR-04 02-APR-04SQL>