|
|
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Люди!!! Имеется набор неких данных (все текстовые), назовем их «КООДЫ» «28010000», «28010001», «28010002», «28010003», и т.д до «28019999». Далее « 46010000», «46010001», «46010002», «46010003», и т.д до «46019999 ». Встречаются и одинокие данные типа «89675643». Вообщем, очень много данных. Поместить их в одну таблицу сами понимаете не возможно. Но можно задать их в виде: « 2801-2802 » или « 28010000-28019999 » и т.д. Задача: в некой таблице («ТаблицаКодов» ) формируется список значений такого же формата как указано выше. Нужно из этой таблицы выбрать только те, которые совпадают со значениями из таблицы «КООДЫ». Не могу составить такой запрос. Пытался использовать Case, Between, Like “2810*”. Но как сформировать список таблицы « КООДЫ » даже ума не приложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 20:50:07 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
UkrainaПоместить их в одну таблицу сами понимаете не возможно. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 21:43:36 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Потому, что их согласно комбинатории (ведь я показал только чать) около ... вообщем очень много. Подсчитайте вариант от "280 100 000" до "280 199 999", а таких условий у меня около 13. Даже есть вариант от "010600990" до "011999999" это 1 399 009 вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 22:14:35 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
1. Много - это сколько, посчитай плз поточнее 2. Какой смысл в хранении этих данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 22:17:06 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Не понятно что надо. Или выбрать существующие коды из таблицы КООДЫ на основании критериев из таблицы ТаблицаКодов, или же сгенерировать все возможные коды на на основании информации из таблицы ТаблицаКодов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 22:19:21 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Это делается следующим образом (например, для почтовых индексов). Заводится таблица с двумя полями: От и До. И проверка данного значения пишется так: От <= X and X <= До Всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 22:31:07 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Или переводя на SQL-ский between [ОТ] and [ДО] Но я все таки думаю, что ему надо сгенерировать все ,что между ОТ и ДО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 22:44:13 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
(c)VIGНо я все таки думаю, что ему надо сгенерировать все ,что между ОТ и ДО А почему ты так думаешь? Я вот читаю: UkrainaЗадача: в некой таблице («ТаблицаКодов» ) формируется список значений такого же формата как указано выше. Нужно из этой таблицы выбрать только те, которые совпадают со значениями из таблицы «КООДЫ». То есть в таблице сидят несколько значений и надо проверить их на принадлежность диапазонам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 23:05:17 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Саныч, прочитай мой пост от 22:19 и ты увидишь, что я ничего не думаю, а спрашиваю , что все таки надо. Так как автор написал взаимоисключающие вещи "Поместить их в одну таблицу сами понимаете не возможно" и "Нужно из этой таблицы выбрать только те, которые совпадают со значениями из таблицы «КООДЫ» ". С другой стороны первая задача достаточно тривиальна да и "Пытался использовать Case, Between , Like “2810*”." Вот я предположил ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 23:23:21 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Это не взаимоисключающие вещи. Невозможно поместить в таблицу полный список. Поэтому в таблицу помещаем только границы диапазонов. Но отсюда не следует, что таблицы нет. Она есть, но в ней нет полного списка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 23:34:55 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Короче, сварганил быстренько на T-SQL (Аксеса сейчас нет под рукой) cкрипт , который генерит номера в диапазоне 28010000-28019999 и 46010000-46019999 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Подсказка: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 23:39:28 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
А зачем??? Он же сказал: "Даже есть вариант от "010600990" до "011999999" это 1 399 009 вариантов". Зачем генерить миллион записей, если можно обойтись одной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2004, 00:01:59 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
авторА зачем??? Ради спортивного интереса :) Важна идея . Я ,например, этим приемом часто пользуюсь когда надо получить "на лету" диапазон дат. А определять в какой диапазон попадает некоторое число -тривиально и не интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2004, 00:21:20 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Извините за молчание, но Интердат вылетел. Саныч ты меня понял до основания. Я думал. что мои объяснения никто не поймет из-за моих умений описывать ситуации. Действительно: создал некую таблицу "ОТ и ДО". Получилось 9 записей с полями "ОТ" и "ДО". Код ОТ ДО 1 0280000 02900000 2 3400000 34001000 3 6707800 69012890 и т.д. Теперь создаю запрос с условием Between "ОТ" and "ДО". Но мне приходиться вставлять поочереди каждое значение. А как сгенерировать автоматический переход на следующую запись. Т.е. получается слишком длинный запрос (Between "0280000" and "02900000") and (Between "3400000" and "34001000") and (... т.д. Плюс ко всему эти данные могут быть изменены, а что еще хуже могут быть добавлены диапазоны, что приведет к ручному изменению запроса, что согласитесь не удобно. Пробывал использовать Select Case [1] Case "01000" To "01040" MsgBox "01000 To 01040" Case "01041" To "01100" MsgBox "01041 To 01100" Case "01101" To "01200" MsgBox "01101 To 01200" Case Else ' MsgBox "Not between 1 and 10" End Select Но опять сталкиваюсь с проблемой обновления диапазона ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2004, 21:49:38 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
А зачем копировать данные в программу??? select * from ТвояТаблица inner join МояТаблица on ТвоеПоле between От and До ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2004, 21:53:44 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Есть таблицы: 1) « Наименование »: Код (индекс), Наименование (текст) 2) « Проверка »: Код (индекс), ОТ (текст), До (текст) Попытался вставить в запрос следующее: select * from Наименование inner join Проверка on Наименование.Наименование between Проверка.От and Проверка.До Дает ошибку, причем говорит, что нет «AND» после between Что делать? Или я не туда вставляю? (подход к решению таков: создаю простой запрос, захожу в режим SQL и вставляю эту строчку) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2004, 23:11:00 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Вроде все правильно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2004, 23:15:15 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Саныч!!! Труба! Ничего не понимаю. Просто, как дурак, три раза написал одно и тоже: SELECT Наименование FROM Наименование INNER JOIN Проверка ON (Наименование.Наименование) between Проверка.От and Проверка.До; Причем первые два раза давала синтактическую ошибку. Может быть дело все таки было в скобках??? Но сейчас работает. Это просто ГЕЕЕНИИАААЛЬНОООООО! Спасибо! Но буду признателен в тройне (жаль, что не на троих), если подтвердите мое предположение насчет скобок, ну в крайнем случае, почему это сначало не работало.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2004, 00:24:55 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
UkrainaЭто просто ГЕЕЕНИИАААЛЬНОООООО! SQL вообще гениальный язык. :^) Почему Аксесс вдруг захотел скобки - не понимаю. Слава тому, кто сообразил, что Аксессу хочется именно этого... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2004, 00:28:03 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Вы мне льстите? Скобки поставил я! Но наехать на скобки позволили ВЫ! Еще раз спасибо. Ну еще раз посожалею, что мы все так далеки друг от друга, а то можно было по 100 гр. фронтовых. На днях обязательно выпью за здоровье и успехи всех форумян!!! Ну и за ВАС персонально. Гип-Гип-УРААААААААААААААААААААА! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2004, 00:43:13 |
|
||
|
Создание запроса выбора по данным таблицы, которую не возможно заполнить
|
|||
|---|---|---|---|
|
#18+
Блин! Хнык! Блин! :^( Ну почему мне все говорят "Вы"? Пойду поменяю ник на Вовочку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2004, 00:47:51 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32630489&tid=1672794]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 362ms |

| 0 / 0 |
