Нахождение в какой категории дни попадают в данную категорию таблицы в SQL - PullRequest
0 голосов
/ 27 мая 2011

У меня есть таблица со столбцом as и его значением, как указано

ProvisionType ------ From Days ------ ToDays

  • goodLoan --------- 1 ------------------ 90
  • Подстолье ------------ 91 -------------- 180
  • сомнительно --------------181 -------------- 365
  • плохо ---------------- 365 ---------------- 365+

В следующем случае у меня может быть переменная, которая может отличаться, и я управляю этим из кода .... Но предположим, если я хочу найти где именно 200 падает между с дней и с днями , поэтому я получаю правильный тип обеспечения .Поэтому, пожалуйста, кто-нибудь может мне помочь в этом

Ответы [ 2 ]

1 голос
/ 27 мая 2011

Если вы используете SQL Server, это должно работать. Не уверен, что у MySql есть МЕЖДУ ...

SELECT ProvisionType 
FROM myTable
WHERE (myVariable BETWEEN FromDays AND ToDays)

Это также может быть написано без МЕЖДУ ...

SELECT ProvisionType
FROM myTable
WHERE myVariable >= FromDays 
AND myVariable <= ToDays

Чтобы это работало, вы должны заменить 365+ в последнем положении фактическим числом, в противном случае поле ToDays должно быть полем varchar, а не числом. Кроме того, если указано значение 365, ожидается ли его попадание в последнюю категорию или в предыдущую? Другие категории имеют четкую точку отсечения, но последние перекрываются.

0 голосов
/ 27 мая 2011

Работает ли это (в SQL Server):

select top 1 ProvisionType
from table
where FromDays < 200
order by FromDays desc

Для MySQL:

select ProvisionType
from table
where FromDays < 200
order by FromDays desc
limit 1

Я не уверен, зачем вам нужны FromDays и ToDays. Кажется, вы просите дублирования и пробелов. Если у вас есть только FromDays, вы гарантируете отсутствие пропусков или перекрытий, и вам не нужно делать умные вещи для управления максимальным лимитом, т.е. 365+ дней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...