초보인데 쿼리관련해서 질문 드리고 싶어요ㅠ 0 2 1,816

by Agent07 Orcle Query join 쿼리 [2012.03.19 09:30:21]


두개 테이블을 가지고 1개 쿼리를 날리는 문제를 풀려는데
잘 안되서 질문을 드립니다.

테이블 A는 단순히 날짜만 가지고 있습니다. (3/1, 3/2, 3/3, 3/4, 3/5....)
테이블 B는 특정 날짜에 금액이 있고요..(3/1 300, 3/4 500)
이걸 섞어서
A에는 있지만 B에는 없는 날짜에도 금액이 적히도록 하고 싶은데요..
3/1 300
3/2 300
3/3 300
3/4 500
3/5 500
---

이렇게요...

아직까지 생각해낸건

select A.date, B.money
from A,B
where A.date>= B.date
order by A.date

이정도인데.. 여기서 어떻게 B날짜 중 가장 적은 하나에 해당되는 금액만 나오게할 수 잇을 까요?

by 마농 [2012.03.19 09:57:03]
 
WITH t1 AS
(
SELECT '20120301' dt FROM dual
UNION ALL SELECT '20120302' FROM dual
UNION ALL SELECT '20120303' FROM dual
UNION ALL SELECT '20120304' FROM dual
UNION ALL SELECT '20120305' FROM dual
)
, t2 AS
(
SELECT '20120301' dt, 300 amt FROM dual
UNION ALL SELECT '20120304', 500 FROM dual
)
SELECT t1.dt
     , LAST_VALUE(t2.amt IGNORE NULLS) OVER(ORDER BY t1.dt) amt
  FROM t1, t2
 WHERE t1.dt = t2.dt(+)
;

by Agent07 [2012.03.19 10:02:34]

마농님 감사합니다..ㅠ 덕분에.. 문제를 풀수 있었습니다.. 이런 방법이 있었군요..ㅠㅠ 아.. 정말 감사합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입