Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.12;
Скачать: CL | DM;

Вниз

Проблема с запросом - выборка из одной таблицы   Найти похожие ветки 

 
Explorer   (2005-12-09 15:21) [0]

Есть такие данные в таблице (так называемый КЛАДР - единный справочник городов, районов, областей России) :

Name                                CODE          Index     GNI   LEnKod
   
Ханты-Мансийский - Югра  86000000000             8600        2
Кондинский                       86004000000       8606       5
Нефтеюганский               86005000000          8619       5
Нижневартовский               86006000000       8620       5
Ханты-Мансийск               86000001000 626200   8601       8
Нижневартовск               86000011000 628600   8603       8
Радужный                       86000015000 628460   8609       8
Усть-Колекъеган               86006000028 628655   8620 11
Чехломей                       86006000029 628650   8620 11
Дивный                       86000011004 628600   8620 11

LenKod - это  "2" - АО, край, республика, область
                  "5" - районы
                  "8" - города
                  "11" - деревни, хутора, село

Надо чтобы когда идет поиск по городу (село, деревня), к примеру, ищу город "Нижневартовск", получил запись вида:

Город  | Индекс Города |  АО-край, Область | район  

написал такой запрос:
select A.Name, A.Index, B.Name, C.Name,
from

(select  * from SprKladr) A,

(select  * from SprKladr where LenKod = 2) B,

(select  * from SprKladr where LenKod = 5) C

where
B.Code Like (SUBSTRING(A.Code,0,3)+"%") and
C.GNI = A.GNIG  and
A.LenKod > 5 and A.KladrName Like "Нижневартовск"

не срабатывает :( т.к. район пуст
когда подставлюя к примеру "Дивный" - все нормально

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


 
msguns ©   (2005-12-09 16:16) [1]

А зачем вместо одного селекта аж 4 ?


 
Explorer   (2005-12-09 17:10) [2]

поэтому и интересуюсь как запрос правильно  составить


 
evvcom ©   (2005-12-09 17:22) [3]

Здесь чего-то не хватает. Где видно, что Нижневартовск (86000011000) относится к Нижневартовскому району (86006000000)?


 
Explorer   (2005-12-09 17:48) [4]

>evvcom
все правильно... поэтому приведенный запрос ничего по поводу "Нижневартовска" не выводит когда нет района....
вот и сообразить как написать запрос, что бы получить запись нужного вида


 
Explorer   (2005-12-09 23:01) [5]

меня интересует, как переделать запрос, чтобы если у города(деревни) нет района он вывел запись такого вида :

Город               | Индекс Города |  АО-край, Область | район  
Нижневартовск  |222222            | Ханты-Мансийский | "ПУСТО"

как все это получить из одной таблицы? :(


 
Alexander Panov ©   (2005-12-09 23:51) [6]

Нарисуй, как связаны Город, Область и Район.
Запрос-то несложный.


 
Explorer   (2005-12-10 11:11) [7]

Сам понимаю, что не должно быть ничего сложного, но не получается :(
связаны по полю
LenKod - это  "2" - АО, край, республика, область
                 "5" - районы
                 "8" - города
                 "11" - деревни, хутора, село

Не получается, сварганить запрос когда у города нет района


 
Explorer   (2005-12-10 12:34) [8]

спасибо.
наконец то сообразил.


 
evvcom ©   (2005-12-12 08:44) [9]


> Сам понимаю, что не должно быть ничего сложного, но не получается :(
> связаны по полю LenKod

Ты не понимаешь что такое связка. По LenKod они не связаны. LenKod только говорит о статусе записи и не более.


 
msguns ©   (2005-12-12 09:40) [10]

"Жесткая" зависимость выполняется через Where, "мягкая" - Join



Страницы: 1 вся ветка

Текущий архив: 2006.02.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.041 c
15-1138016916
Pazitron_Brain
2006-01-23 14:48
2006.02.12
Оцените творчество моего брата.


15-1138012216
Ricks
2006-01-23 13:30
2006.02.12
Breakpoint


2-1138217195
Dlg
2006-01-25 22:26
2006.02.12
Как в MessageDlg сделать, что бы в фокусе ввода была кнопка No ?


15-1138008330
Ega23
2006-01-23 12:25
2006.02.12
Какой текст сообщения должен быть?


4-1133439814
Tor
2005-12-01 15:23
2006.02.12
Получение координат иконки в sys tray