powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хитрый запрос . нужен совет
18 сообщений из 18, страница 1 из 1
Хитрый запрос . нужен совет
    #32531703
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача:
таблица- два поля m , n для выборки, остальные информация.
два запроса zm и zn в запрсах набор цифр для выборки и таблицы по m и n соответственно.
нада чтоб в результирующем запросе по таблице присутствовали записи соответствующие и m и n.
при использовании in всё работает, но медленно.
нада без in !!!
и чтоб запрос был редактируемым!!!

ежели задача не понятна попытаюсь объяснить
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32531907
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может стоит join попробовать?

А так - кидай запросы :)
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32532412
dimadd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select * from T where m in (1,2,3,4,5..) or n in(1,2,3,4,5..) ???
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32532442
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторв запрсах набор цифр для выборки и таблицы по m и n соответственно
Можно еще раз? Где таблицы и где запросы, и что в них?
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32532514
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT d.m, d.n
FROM (d LEFT JOIN b ON d.m = b.cr) LEFT JOIN b AS b_1 ON d.n = b_1.cr
WHERE ((([b].[cr] Is Null And [b_1].[cr] Is Null)=False));

В таблице d - данные для выборки, в таблице b поле cr - цифири для отбора.
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32532516
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М-да. А тэги я и не учел.
В преложении WHERE после трех скобок перед точкой имя таблицы b
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32532519
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я исправил. :^)
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32532522
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасиба) Саныч, как всегда, не дремлет
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32532552
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть Table1 - данные

Создадим F1Table.f1Sel и F2Table.f2Sel - таблицы и поля с требуемыми для фильтра данными
- это лучше динамического in() на больших объемах записей

и напишем запрос:

SELECT Table1.datas, Table1.f1, Table1.f2, F1Table.f1Sel, F2Table.f2Sel, IIf(Not IsNull([f1Sel]) Or Not IsNull([f2Sel]),1,Null) AS TestData
FROM F2Table RIGHT JOIN (F1Table RIGHT JOIN Table1 ON F1Table.f1Sel = Table1.f1) ON F2Table.f2Sel = Table1.f2
WHERE (((IIf(Not IsNull([f1Sel]) Or Not IsNull([f2Sel]),1,Null))=1))

WHERE покажет только совпадения (можешь поменять на AND если надо),
а чтобы был обновляемым
войди в конструктор запроса
залезь в свойства
и поставь
Recordset Type = Dynaset (Inconsistent Updates)
вместо простого Dynaset

Но при этом бессмысленно разрешать менять F1Table.f1Sel и F2Table.f2Sel , правда?
До requery все равно новостей не узнаешь
сделай форму и дай этим полям locked=true & enabled=false
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32534121
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пока рассмотреть предложения не успел

выкладываю базу с примером
запрос2 с in
хотелось бы получить такой же результат , но без in
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32534123
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
второая часть
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32534147
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Alexus12
2zz
ежели не в лом перефразируйте свои предложения для приложенной базы.
с "листа" трудновато въехать...
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32534194
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT движение2.продажа, движение2.покупка, движение2.код, движение2.[номер документа]
FROM (движение2 LEFT JOIN s1 ON движение2.продажа = s1.код) LEFT JOIN s2 ON движение2.покупка = s2.номер
WHERE ((([s1].[код] Is Null And [s2].[номер] Is Null)=False));
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32534476
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2zz
всё хорошо, только не не обновляется....
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32534522
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexus12а чтобы был обновляемым
войди в конструктор запроса
залезь в свойства
и поставь
Recordset Type = Dynaset (Inconsistent Updates)
вместо простого Dynaset
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32534558
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ZZ
сделал, действительно стал обновляемым...
только я не сделал акцент на то что в запрос2 в
In (SELECT s2.номер FROM s2;)

select и должен остаться . т.е. s2 это не готовая таблица , а

должно быть

In (SELECT s2.номер FROM s2 where ......;)

в примере s2 и s1 просто обрезанные таблицы.
сори...
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32534709
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT движение2.продажа, движение2.покупка, движение2.код, движение2.[номер документа]
FROM (движение2 LEFT JOIN (SELECT Bla-bla-bla ) s1 ON движение2.продажа = s1.код) LEFT JOIN (SELECT Bla-bla-bla) s2 ON движение2.покупка = s2.номер
WHERE ((([s1].[код] Is Null And [s2].[номер] Is Null)=False));
...
Рейтинг: 0 / 0
Хитрый запрос . нужен совет
    #32536167
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ZZ
Спаибо. заработало. правда ещё не разобрался, чтоб повторить самому.

проблема возникла в следующем:
запускаю запрос сам по себе - обрабатывается быстро.
делаю requery в форме - тормаза в3-4 раза медленнее (ежели не больше)
обработки событий для формы отключены.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хитрый запрос . нужен совет
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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