2012-03-30 3 views
3

의 테이블에 날짜와 가격이 있습니다.유효한 날짜 지정일

 
Date     Price 
2012-01-01   25 
2012-01-05   12 
2012-01-10   10 

'2012-01-07'의 현재 가격을 찾을 수있는 기능이 있나요? 나 없이는 다른 데이트도 알지 못해.

Pseudoquery : 선택 가격 currentprice ('2012-01-07')

감사합니다!

+0

어떤 DBMS가 있습니까? 날짜가 문자열 또는 날짜 데이터 유형으로 저장 되었습니까? –

+0

테이블에 자동 실행 ID와 제품 ID가 있습니까? 당신을 위해 쿼리를 생성 할 수 있어야합니다. – JotaBe

+0

'2012-01-07'의 가격은 얼마입니까? 마지막 가격이 책정 되었습니까? 아니면 다른 방식으로 결정됩니까? – SWeko

답변

3

MySQL은 :

select price from your_table 
where date <= '2012-01-07' 
order by date desc 
limit 1 

SQL 서버 : 당신이 ROW_NUMBER()의 사용을 가지고 있고, 일반적인 솔루션을 원하지 않는 경우

select top 1 price from your_table 
where date <= '2012-01-07' 
order by date desc 
+1

사람이 도움이된다면 ... 나는 돌아 섰고 모든 대답을 얻었습니다 ... 물론이 방법은 간단했습니다 :) – freand

1

것은, 당신은 하위 쿼리에 가입해야 .

원하는 날짜를 가져온 다음 해당 날짜의 데이터를 가져옵니다.

SELECT 
    * 
FROM 
    yourTable 
INNER JOIN 
(
    SELECT MAX(yourDate) AS maxDate FROM yourTable WHERE yourDate <= @dateParameter 
) 
    AS lookup 
    ON yourTable.yourDate = lookup.maxDate 
1
select price 
from table1 t 
where t.date = (select max(t2.date) 
        from table1 t2 
        where t2.date <= '2012-01-07') 

이 아니다 복사 & 붙여 넣기 대답, 우리는 당신의 date 열의 데이터 유형이 무엇인지 모르고하지 않는 것처럼.

+0

정말로 <= = 2004'을 원하지 않는 한 무언가를 날짜 주위에 넣으십시오. – MatBailie

+0

@Dems pointing for thanks 이거. –

관련 문제