년도 | 적용일 | 단가 |
2008 | 10 | |
2008 | 20080301 | 11 |
2008 | 20080701 | 12 |
2008 | 20081001 | 13 |
2009 | 14 | |
2009 | 20090301 | 15 |
db 테이블 내용이 위와 같이 되어있을 경우
제가 조건으로 가지고 있는것은
시작일 : 20080515
종료일 : 20090211
이 두가지 입니다.
헌데 적용일이 시작일과 종료일 기간 사이의 내용(노란색)은 between으로 발췌할수 있을거 같은데
제가 필요로 하는 것은 시작일보다 적용일이 시작일 보다 작은 하나(초록색)를 더 가지고 와야 합니다.
이럴 경우 어떻게 쿼리를 날려야 할까요?
많은 조언 부탁드립니다.^^
댓글 5
-
째마니
2009.03.20 04:35
님 제가 머리가나빠서 인지 이해가 잘 되지 않네요. 다시 설명 부탁 드립니다. -
정군
2009.03.20 09:31
native 로는 다양한 방법이 잇겠지만...
open으로 하려면 원하는 기간에 있는 데이터를 가져오고 나서
시작일보다 작은 한건을 가져와서 인터널테이블에 append하도록 하시면 되겠네요.
한번에 하는게 꼭 답은아니니까요...
단 어펜드 하는 쿼리에 up to 1 rows??인가를 써서 하나만 가져오도록 하면
퍼포먼스에도 그다지 부담되지는 않을 듯 합니다.
-
greenHair
2009.03.20 19:03
한마디로 그냥 종료일보다 작은 것을 다 가지고 오면 되는것 같은데요..
-
은근
2009.03.20 19:08
째마니 // 설명이 좀 부족했던거 같네요. 일단 해결이 되어서요...
정군 // 네. 저도 한번에 받아오려고만 하다보니. 그렇게 됬습니다.
한번에 받아오려면 일단 서브쿼리로 하면 될것도 같은데...굳이 그럴필요없이
정군님이 말씀하신것과 비슷하게 저는 먼저 시작일보다 적용일이 작은 것중 제일 큰값 가지고와서
두번째 발췌시 다 가져오도록 처리했습니다.
두분다 답변 감사합니다.
-
은근
2009.03.20 20:41
greenHair // 그랬을 경우에는 가지고 오지 말아야 할 첫번 째열도 select 되게 됩니다.^^