Поиск значения между значениями в полях «От» и «До» и обновление таблицы - PullRequest
0 голосов
/ 07 июня 2018

У меня есть две таблицы.Одна содержит серию диапазонов (tbRange), например,

ID  From   To     Score  
1   0.00   17.00  A  
2   17.00  22.50  B  
3   22.50  24.50  C+  
4   24.50  26.50  C  
5   26.50  31.50  C-  
6   31.50  44.00  D

, другая таблица имеет общее значение (tbValues) и пустое поле 'Score'

BuildingID Totals Score
3065       22.10  NULL
3066       22.00  NULL
3067       23.86  NULL

Я пыталсязапросить tbRange с запросом на обновление, чтобы определить и заполнить tbValues.Score с помощью tbRange.Score, где мои tbValues.Totals лежат между tbRange.From и tbRange.To, но я никуда не могу попасть.

ВПример 3 записей выше желаемого результата будет «B», «B», «C +»

Заранее спасибо

1 Ответ

0 голосов
/ 07 июня 2018

Попробуйте использовать вот так, и дайте мне знать, если это поможет?

  update aa
    set aa.Score = a.Score
    from tbRange as a 
    inner join tbValues as aa
    on aa.Totals BETWEEN a.[From] AND a.[To] 

РЕДАКТИРОВАТЬ

Я не заметил, что есть два 24,0, так что оценкабудет реализован первым?Таким образом, в основном решение этой проблемы мы можем установить, если Total>> a.from AND Total

 update aa
    set aa.Score = a.Score
    from tbRange as a 
    inner join tbValues as aa
    on aa.Totals >= a.[From] AND aa.Totals < a.[To] 

ЕСЛИ ЭТО РАБОТАЕТ, ТО КАК ЭТО РАБОТАЕТ ??

В sql у нас есть оператор BETWEEN, который можно использовать для конкретного выбора между диапазонами.

...