Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.035 c
8-1126072638
BUHALO
2005-09-07 09:57
2006.02.12
Размер в BITMAP


4-1133225072
Германн
2005-11-29 03:44
2006.02.12
Как перезапустить службу на удаленном компьютере


8-1125511130
Galiaf
2005-08-31 21:58
2006.02.12
Глубина в OpenGl.


1-1136953843
иосиф
2006-01-11 07:30
2006.02.12
Советы по оптимизации - 1


2-1138030902
Коля
2006-01-23 18:41
2006.02.12
Куда посоветуете спрятать пароль?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский