오늘 날짜 기준으로 해서 최종매입일을 구하고 싶습니다.
디비에
20130515
20130516
20130516
20130516
20130519
20130520
20130520
20130520
20130520
20130520
20130520
20130521
20130521
20130523
다음과 같이 날짜가 있을 경우, 오늘 기준으로 했을 때는 20130523이 최종매입일이 되는겁니다.
만약 오늘이 20130520일 경우 20130519가 최종 매입일이 됩니다.
현재 답보상태입니다. 어떻게 하면 좋을까요?
Comment 2
-
catchv
2013.05.24 13:26
-
한태
2016.03.04 18:28
--table 생성create table lastma(alpha varchar(4),ymd datetime)--오늘부터 50일 전까지 data insertdeclare @i int = 1while(@i<50)begininsert into lastma values (CHAR( FLOOR(65 + (RAND() * 25))),CONVERT(NVARCHAR, GETDATE()-@i, 23))set @i=@i+1end--인덱스 생성create nonclustered index lastma_ymd_alp on lastma(ymd desc,alpha)--최종 매입일 확인select top 1 * from lastmawhere ymd<GETDATE()select top 1 * from lastmawhere ymd<GETDATE()-10order by 하지 않고 인덱스를 활용하려 했습니다.위의 쿼리를 수행하면 index seek를 하기에 top 쿼리도 문제되지 않을 것이라 생각합니다.
SELECT TOP 1 날짜
FROM ~~~~
WHERE 날짜 < CONVERT(VARCHAR(8), GETDATE(), 112)
ORDER BY 날짜 DESC
이렇게 하면 되지 않을까요?
-- catchv