2015-10-24 1 views
2

Я имя таблицы tblRate в том, что две колонки являются их TotalDays и Rate значения в таблице, напримерНайти табличное значение между диапазоном столбца в SQL

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

Я хочу написать запрос, который будет возвращать ставку, если я обеспечиваю значение общего количества дней, то есть, если я предоставить значение в 35, то она должна быть возвращать значение 4,5, что означает 4,5 пришел в между 30 to 40 range.

+0

Что вы пробовали? Что-то вроде: 'SELECT Rate от tblRate WHERE TotalDays> = 30 И TotalDays <= 40' будет работать. Но покажите, что вы пробовали. –

ответ

1

Попробуйте это:

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

Где ? ваше значение.

Это будет работать, если rates увеличивается с помощью TotalDays, что кажется.

+0

'select Top 1 rate from tblRate где TotalDays <=? 'это то, что я хочу, чтобы он работал с помощью вашего запроса. – Milind

+0

@Milind да, вы могли бы переписать его как «верхний» запрос, но вы должны добавить заказ, чтобы убедиться, что вы получили правильный результат: 'select top 1 rate от tblRate, где 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

Смежные вопросы