Anuragintit Ответов: 2

Как вести себя, когда есть дистанция


hello there
need your help for following problem if m having a master table as
<pre>
Lead_ID	Lead_Name(KM)
0	    1-8
1	    1-25
2	    1-50
3	    1-100
4	    1-150
5	    1-200
7	    1-300

и еще одна таблица для расстояния , как
SocId      GdnID        Distance(KM)
x           Y             20
A           B             30
C           D             15
E           F             4

Теперь мне нужно получить идентификатор свинца из 1-й таблицы
например, если я получу расстояние = 4, то идентификатор свинца будет равен 0, так как он находится между 1-8 и нет необходимости проверять 1-25, 1-50, 1-100 ...так далее
аналогично, если я получу расстояние = 20, то идентификатор свинца будет равен 1, так как он находится между 1-25 и нет необходимости проверять 1-50 ...так далее
аналогично, если я получу 35, то lead id будет 2, так как он находится между 1-50 и нет необходимости регистрироваться в 1-100 ...так далее

Что я уже пробовал:

попробовал с таблицей temp устранить после - и проверить с цифрой wheather значение низкое или высокое, но я занимаю много времени, так как я использую цикл

2 Ответов

Рейтинг:
6

OriginalGriff

Не храните данные в виде строк, если они действительно не являются и всегда будут рассматриваться как строки. Имя, адрес, номер телефона - все это строки.
"1-8", "1-25" и т. д. не являются, потому что вы хотите рассматривать их как числа, чтобы выяснить, находится ли что-то в диапазоне.
Так что храните их как два отдельных числа!

LeadID LeadMin LeadMax
0            1       8
1            9      25
2           26      50
...
Теперь ваша проблема становится тривиальной:
SELECT LeadID FROM MyTable WHERE value BETWEEN LeadMin AND LeadMax


Anuragintit

извините за предыдущий комментарий, Я думаю , что это полезно, позвольте мне попробовать..спасибо..........

OriginalGriff

Всегда пожалуйста!
(Я просто пытался понять, что означает ваш комментарий!)

Anuragintit

Большое спасибо @OriginalGriff, все работает нормально....

OriginalGriff

:большой палец вверх:

Рейтинг:
2

Gerry Schmitz

Вот что происходит, когда вы используете глупые коды.

Вы имеете дело с "диапазонами":
0: 1,8
1: 9,25
2: 26,50
и т.д.

Вы добавляете эти "высокие и низкие" значения в свою таблицу поиска и сравниваете "между".