Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с запросом - выборка из одной таблицы [D7, MSSQL]


Explorer ©   (2005-12-09 15:21:00) 

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

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-12 09:40:00) [1]

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


evvcom   (2005-12-12 08:44:00) [2]


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

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


Explorer   (2005-12-10 12:34:00) [3]

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


Explorer   (2005-12-10 11:11:00) [4]

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

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


Alexander Panov   (2005-12-09 23:51:00) [5]

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


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

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

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

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


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

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


evvcom   (2005-12-09 17:22:00) [8]

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


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

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


msguns   (2005-12-09 16:16:00) [10]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо