2012-03-30 9 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 Serverの:

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

人はここで役立ちます...私は離れてすべての答えを得ました...もちろん、それは簡単でした:) – freand

1

あなたはROW_NUMBER(の使用を持っていない場合)、および一般的なソリューションをしたい、あなたは、サブクエリに参加する必要があり。

希望の日付を取得し、その日付のデータを取得します。

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

@これはアウト。 –

関連する問題