powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание запроса выбора по данным таблицы, которую не возможно заполнить
22 сообщений из 22, страница 1 из 1
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630211
Ukraina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди!!!
Имеется набор неких данных (все текстовые), назовем их «КООДЫ»
«28010000», «28010001», «28010002», «28010003», и т.д до «28019999». Далее
« 46010000», «46010001», «46010002», «46010003», и т.д до «46019999 ». Встречаются и одинокие данные типа «89675643». Вообщем, очень много данных. Поместить их в одну таблицу сами понимаете не возможно. Но можно задать их в виде:
« 2801-2802 » или « 28010000-28019999 » и т.д.
Задача: в некой таблице («ТаблицаКодов» ) формируется список значений такого же формата как указано выше. Нужно из этой таблицы выбрать только те, которые совпадают со значениями из таблицы «КООДЫ». Не могу составить такой запрос. Пытался использовать Case, Between, Like “2810*”. Но как сформировать список таблицы « КООДЫ » даже ума не приложу.
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630234
Yanis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UkrainaПоместить их в одну таблицу сами понимаете не возможно.
Почему?
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630243
Ukraina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому, что их согласно комбинатории (ведь я показал только чать) около ... вообщем очень много. Подсчитайте вариант от "280 100 000" до "280 199 999", а таких условий у меня около 13. Даже есть вариант от "010600990" до "011999999" это 1 399 009 вариантов.
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630246
Yanis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Много - это сколько, посчитай плз поточнее
2. Какой смысл в хранении этих данных?
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630247
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понятно что надо. Или выбрать существующие коды из таблицы КООДЫ
на основании критериев из таблицы ТаблицаКодов,
или же сгенерировать все возможные коды на на основании информации из таблицы ТаблицаКодов
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630254
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Это делается следующим образом (например, для почтовых индексов). Заводится таблица с двумя полями: От и До. И проверка данного значения пишется так:

От <= X and X <= До

Всё.
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630255
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или переводя на SQL-ский
between [ОТ] and [ДО]

Но я все таки думаю, что ему надо сгенерировать все ,что между ОТ и ДО
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630257
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
(c)VIGНо я все таки думаю, что ему надо сгенерировать все ,что между ОТ и ДО
А почему ты так думаешь? Я вот читаю:

UkrainaЗадача: в некой таблице («ТаблицаКодов» ) формируется список значений такого же формата как указано выше. Нужно из этой таблицы выбрать только те, которые совпадают со значениями из таблицы «КООДЫ».
То есть в таблице сидят несколько значений и надо проверить их на принадлежность диапазонам.
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630260
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, прочитай мой пост от 22:19 и ты увидишь, что я ничего не думаю, а спрашиваю , что все таки надо. Так как автор написал взаимоисключающие вещи "Поместить их в одну таблицу сами понимаете не возможно" и "Нужно из этой таблицы выбрать только те, которые совпадают со значениями из таблицы
«КООДЫ»
".
С другой стороны первая задача достаточно тривиальна да и "Пытался использовать Case, Between , Like “2810*”."
Вот я предположил ...
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630264
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Это не взаимоисключающие вещи. Невозможно поместить в таблицу полный список. Поэтому в таблицу помещаем только границы диапазонов.

Но отсюда не следует, что таблицы нет. Она есть, но в ней нет полного списка.
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630267
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, сварганил быстренько на T-SQL (Аксеса сейчас нет под рукой) cкрипт , который генерит
номера в диапазоне 28010000-28019999 и 46010000-46019999

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
declare @nums table (n int)
insert @nums
select  0  n union all select  1  union all select  2  union all select  3  union all select  4  union all
select  4   union all select  6  union all select  7  union all select  8  union all select  9 

select bb.base + replace(str( 1000 *a.n + 100 *b.n +  10 *c.n +d.n, 4 , 0 ),' ','0')
from @nums a,@nums b,@nums c,@nums d,
 (select '2801' base union all select '4601') bb
order by  1 
Перевести на аксес -дело техники. Оставляю это Украине в качестве домашнего задания
Подсказка:
Код: plaintext
replace(str( 1000 *a.n + 100 *b.n +  10 *c.n +d.n, 4 , 0 ),' ','0')  =format( 1000 *a.n + 100 *b.n +  10 *c.n +d.n,"0000")
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630270
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А зачем??? Он же сказал: "Даже есть вариант от "010600990" до "011999999" это 1 399 009 вариантов". Зачем генерить миллион записей, если можно обойтись одной?
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630273
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА зачем???
Ради спортивного интереса :)
Важна идея . Я ,например, этим приемом часто пользуюсь когда надо получить "на лету" диапазон дат.
А определять в какой диапазон попадает некоторое число -тривиально и не интересно
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630487
Ukraina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините за молчание, но Интердат вылетел. Саныч ты меня понял до основания. Я думал. что мои объяснения никто не поймет из-за моих умений описывать ситуации.
Действительно: создал некую таблицу "ОТ и ДО". Получилось 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
Но опять сталкиваюсь с проблемой обновления диапазона
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630489
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А зачем копировать данные в программу???

select * from ТвояТаблица inner join МояТаблица on ТвоеПоле between От and До
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630504
Ukraina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблицы:
1) « Наименование »: Код (индекс), Наименование (текст)
2) « Проверка »: Код (индекс), ОТ (текст), До (текст)
Попытался вставить в запрос следующее:

select * from Наименование inner join Проверка on Наименование.Наименование between Проверка.От and Проверка.До

Дает ошибку, причем говорит, что нет «AND» после between
Что делать? Или я не туда вставляю? (подход к решению таков: создаю простой запрос, захожу в режим SQL и вставляю эту строчку)
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630507
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вроде все правильно...
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630521
Ukraina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч!!! Труба! Ничего не понимаю. Просто, как дурак, три раза написал одно и тоже:

SELECT Наименование
FROM Наименование INNER JOIN Проверка ON (Наименование.Наименование) between Проверка.От and Проверка.До;


Причем первые два раза давала синтактическую ошибку.
Может быть дело все таки было в скобках??? Но сейчас работает.

Это просто ГЕЕЕНИИАААЛЬНОООООО!
Спасибо! Но буду признателен в тройне (жаль, что не на троих), если подтвердите мое предположение насчет скобок, ну в крайнем случае, почему это сначало не работало....
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630522
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
UkrainaЭто просто ГЕЕЕНИИАААЛЬНОООООО!
SQL вообще гениальный язык. :^)

Почему Аксесс вдруг захотел скобки - не понимаю. Слава тому, кто сообразил, что Аксессу хочется именно этого...
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630524
Ukraina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы мне льстите? Скобки поставил я! Но наехать на скобки позволили ВЫ!
Еще раз спасибо.
Ну еще раз посожалею, что мы все так далеки друг от друга, а то можно было по 100 гр. фронтовых. На днях обязательно выпью за здоровье и успехи всех форумян!!! Ну и за ВАС персонально.
Гип-Гип-УРААААААААААААААААААААА!
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630526
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Блин! Хнык! Блин! :^(
Ну почему мне все говорят "Вы"?
Пойду поменяю ник на Вовочку...
...
Рейтинг: 0 / 0
Создание запроса выбора по данным таблицы, которую не возможно заполнить
    #32630533
Ukraina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни в коем случае!!!! Об этом надо поговорить на Лестнице.
ВС это звучит гордо!
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание запроса выбора по данным таблицы, которую не возможно заполнить
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]