powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос к Аксакалам :-)
16 сообщений из 16, страница 1 из 1
Вопрос к Аксакалам :-)
    #32130179
Alex_from_Spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Кто-нибудь из опытных пользователей/программистов MS Access может подсказать мне оптимальное решение проблемы? Суть в следующем - в базе данных MS Access международной телефонной компании необходимо создать статистический отчет, который бы показывал, по каким направлениям чаще всего звонят клиенты. В базе имеется таблица, куда пишутся все данные о совершенных звонках с полем Destinaton (набранный номер), а также таблица с международными кодами стран. Так вот мне непонятно, каким образом мне, на основе этих двух таблиц, построить запрос, который бы сравнивал начальные символы поля Destination (текст) из первой таблицы с полем Codes (текст) из второй, отсеивая записи по этим кодам, потому что дальше все понятно - группировка по кодам, подсчет количества звонков при помощи поля МЕМО и вывод результатов запроса в отчет. Или SQL на такое не способен, надо писать процедуру на VBA?

Заранее благодарен за возможную помощь и советы.

P.S. Перелопатил все, что только можно, включая и этот форум - так и не нашел способа решить проблему...
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130194
Фотография Sinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вообще можно создать запрос, в котором уже отрезать
эти 4 символа, а далее завязываешься уже с этим запросом на сравнение,
а почему бы не отрезать код еще при встаке записи?
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130211
boar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема решаема!!!\r
\r
начало решения здесь
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130213
boar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sorry\r
\r
/topic/15898
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130219
Alex_from_Spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Sinner, но второе, к сожалению, невозможно, т.к. фактически эта таблица представляет собой журнал работы системы и поля ее заполняются аналогично лог-файлу и используются потом в других отчетах. А первое - к сожалению, везде надо отрезать разное количество первых символов, от двух до четырех, так что этот вариант тоже не покатит. Видимо, придется сравнивать значения. А как это грамотно сделать, я без понятия. :-((
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130248
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Погодите, а почему нельзя так:

select * from Table1 where A like (select B from Table2) & "*"

Я не пробовал, но вдруг...
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130250
boar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильно но очень долго...
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130253
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А так:

select * from Table1 where A like (select B & "*" from Table2)
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130263
boar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну долго!!! пока он проверит все записи из Table2 в соответствии с Table1 да еще и like...
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130318
Alex_from_Spb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за ответы и советы, но что-то ничего у меня так и не работает, ни Ваша подсказка, Boar, ни Ваша, Владимир Саныч. На попытку внесения этих строк, порекомендованных Вами, Boar, в запрос непосредственно в режиме SQL Access пишет сообщение об ошибке (пропущен оператор - какой оператор, и где он пропущен, непонятно...) и отказывается его запускать. А Ваша рекомендация, Владимир Саныч, работает, только после запуска выдается надпись, что подчиненный запрос может сформировать не более одной строки, а по нажатию ОК никакого результата не выдается. Или, может я Вас не понимаю и делаю все неправильно?...
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130325
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Да нет, раз boar говорит, что мой вариант будет работать медленно, то я его снимаю. Нет смысла его отлаживать.

А вообще, странно мне, что даже при наличии индекса не удается ускорить поиск по начальной части строки.
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130353
boar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пришли мне урезанную базу и будет видно..
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32130524
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предлагаю сначала сгруппировать по кодам (выборка с одной таблицы), а потом уж по странам.
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32131256
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Варианта 2
1) Использовать в запросе VBA(Len и Like)
Where Left(Значение1,Len(Значение2))=Значение2
2) Like
where like Значение1 like (Значение2 + '*')
Другие варианты в голову не пришли.
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32131291
Владимир Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SELECT Calls.*, Codes.Codes
FROM Calls INNER JOIN Codes ON Calls.Destination LIKE Codes.Codes &  "*" 

Здесь Calls - данные о совершенных звонках, Codes - таблица с кодами стран.
А дальше группируйте.
...
Рейтинг: 0 / 0
Вопрос к Аксакалам :-)
    #32131471
boar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хмм... че-то сам автор Alex_from_Spb пропал
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос к Аксакалам :-)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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