2015-10-24 33 views
2

列的範圍之間的表值我已經表名tblRate在兩列在表中如他們TotalDaysRate查找SQL

TotalDays | Rates 
20   | 3.5 
30   | 4.5 
40   | 5.5 

我想寫查詢,將收益率,如果我提供總天數的值,即,如果我提供值35,然後它需要返回4.5,這意味着4.5是來在30 to 40 range.

+0

你到目前爲止嘗試過什麼?例如:'從tblRate WHERE TotalDays> = 30且TotalDays <= 40'的SELECT Rate會起作用。但顯示你的嘗試。 –

回答

1

試試這個:

select max(rate) as rate 
from tblRate 
where TotalDays <= ? 

哪裏?是你的價值。

如果rates隨着TotalDays的增加而增加,這似乎有效。

+0

'從tblRate中選擇最高1率,其中TotalDays <=? '這是確切的,我希望它在你的查詢的幫助下工作。 – Milind

+0

@Milind是的,你可以將它重寫爲「top」查詢,但是你應該添加一個命令來確保你得到正確的結果:'從tblRate中選擇最高1的速率,其中TotalDays <=?按速率命令desc' – Bohemian

4

之間。如果我得到正確的值:

select * from rates where totaldays = (@v/10)*10 

或者:

select top 1 * from rates where totaldays <= @v order by totaldays desc 
+0

您的查詢工作正常,直到我嘗試的值低於'TotalDays'的最後一列的值不工作,如果我輸入的值大於50,那麼仍然在那個時候我想返回值40 – Milind

+0

我剛剛輸入值20- 30-40只是爲了示例它可能動態變化意味着100到250和251到460隨機我想從範圍內的值 – Milind