ms-sql query 질문입니다.
2010.09.24 11:02
이번에 플젝을 하나 받았는데... 빡세네요 -_-
ms-sql 구문을 하나 구성하려는데 조건이
'해당일자의 전 일자로 최근일자'를 가져오는겁니다.
예를 들어 데이터가
2010-10-01
2010-09-01
2010-08-01
2010-07-01
뭐 이렇게 있는데 (각 레코드는 다수입니다. 그러니까 2010-10-01 이란 값으로 레코드가 여러개 있다는 말)
검색조건으로 2010-08-20을 입력하게 되면 최근의 전일자로 해서 2010-08-01의 레코드를 다 들고 오는건데요.
최근 검색조건으로 top 1 뭐 이렇게 들고오는걸 해봤는데, 이건 아닌거 같더라구요.
어떻게 하면 구문이 만들어질지를 짐작도 못하겠습니다;
도움 부탁드립니다.
코멘트 4
-
조일권
09.24 12:01
-
김강욱
09.24 19:05
아마 말씀이,
2010-10-01
2010-09-01
2010-08-05
2010-08-01
2010-07-01
있다면, 2010-08-05 일자 데이타를 모두 들고 오고 싶다는 얘기같으심미다.
2010-08-01 는 빼고~~~
검색일보다 작은 "가장 큰 날짜"로 SELECT 하고 싶다는 얘기 같으신데, 단순하게는 되는데, 훌륭한 쿼리인지는 ... 잘 .... 속도 문제도 있공 ...
-
조일권
09.24 21:32
김강욱님 말씀처럼 그런 쿼리라면
declare @임시날짜 char(10)
select top 1 @임시날짜 = 날짜 from table where 날짜 < '2010-08-20'
select 날짜 from table where 날짜 = @임시날짜
가 되겠네요.
-
김강욱
09.25 14:36
아마 top 1 구문에 order by 날짜 desc 가 필요할텐데, 이 table 안에 몇 건이 있는지, 인덱스가 있는지에 따라 쓸 수 있는 쿼린지 아닌지가 결정될 듯하네요.
@임시날짜대로 가져오는 건 뭐 절대시간이 있다치더라도 말입니다.
| 번호 | 제목 | 작성자 | 작성일 | 조회 |
|---|---|---|---|---|
| 공지 | 게시판 성격에 맞지 않는 글은 예고없이 삭제합니다. [6] | 星夜舞人 | 2011.10.10 | 216126 |
| 공지 | [공지] 만능문답 게시판을 이용하는 분들을 위한 당부 말씀 [3] | iris | 2010.03.16 | 196244 |
| 5944 | 요기 음악들을 한꺼번에 다운받는 방법이 없나요? [4] | 海印 | 10.07 | 149 |
| 5943 |
Palm V 와 Palm Vx 는 서로 호환되나요?
[4]
| 海印 | 03.09 | 394 |
| 5942 | 음악을 즐기는 방법 문의드립니다. [2] | 맑은하늘 | 12.24 | 395 |
| 5941 | 포인트 확인 방법을 못 찾겠습니다. [1] | 수퍼소닉 | 02.02 | 396 |
| 5940 | 팜 TX 배터리 교환하는 좋은 방법 조언 부탁드립니다. [2] | SON | 10.29 | 406 |
| 5939 | 전남 화순 여행지 추천 바랍니다. [6] | 해색주 | 03.03 | 406 |
| 5938 | 시인 혹은 시집 추천 부탁드립니다. [9] | 쿠후^^ | 06.19 | 411 |
| 5937 | 공유기 추천좀 해주세요. [1] | 앙겔로스 | 02.19 | 412 |
| 5936 |
어디로 가야할까요??
[2]
| 인간 | 01.06 | 414 |
| 5935 |
다익스트라 알고리즘 질문 있습니다.
[6]
| 스파르타 | 12.08 | 419 |
| 5934 | 호텔예약? [4] | 도원 | 07.07 | 422 |
| 5933 | [PC] 업그레이드를 고민 중입니다만... [2] | 하뷔 | 02.20 | 423 |
| 5932 | 캘리포냐 이너넷, 뭘 쓰면 좋을까요 ? [3] | 왕초보 | 10.06 | 423 |
| 5931 | 라즈베리파이를 사려면 어디가 좋을까요? [4] | 조슈아 | 10.11 | 426 |
| 5930 | 메뉴와 파이어폭스 [5] | 베이스 | 10.02 | 427 |
| 5929 | 광부 한분 영입해도 될까요? [4] | 우야씨 | 01.17 | 428 |
| 5928 |
절연 테이프 위치
[1]
| 우야씨 | 09.12 | 430 |
| 5927 | 담보대출 금리 때문에 여쭙니다 ㅜㅜ [18] | 청부업자 | 06.25 | 432 |
| 5926 |
c언어 자료구조 관련 간단한 질문 있습니다.
[10]
| 스파르타 | 10.13 | 433 |
| 5925 |
겔럭시 s3 충전 안됩니다.
[3]
| 상호아빠 | 01.12 | 434 |


2010-06-01 ( 여러개 레코드를 가지고 있음)
2010-07-01 ( 이것도 ... )
2010-08-01 ( 이것도 ... )
2010-08-20 ( 이것도 ... )
즉 2010-08-20 검색 조건이 되면 08-01, 07-01 , 06-01 데이타를 다 가지고 와야 되는건가요?
아니면 08 월 데이타만 가지고 와야 되는건가요?
설마 그럴일은 없겠지만.... Where 날짜 < '2010-08-20' 하면 죄다 가지고 올꺼고...
만약 8월 만의 데이타가 필요하다면
프로그램 내부에서 검색 월만 추출해서 2010-08-01 만들어서
where 날짜 >= '2010-08-01' and 날짜 < '2010-08-20'
이렇게 하면 될듯 한데.. ^^;;