Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2023, 21:22   #1
Igor00082
Новичок
Джуниор
 
Регистрация: 15.05.2023
Сообщений: 2
По умолчанию Упростить SQL запрос

Код:
strSQL = "SELECT Пользователи.Телефон1, Пользователи.UserID, DMax(""[Дата публикации]"",""[Объявления архив]"",""[UserID]='"" & [UserID] & ""' and [Область]='" & Me.Комбинированная105 & "'"") AS Дата, DLookUp(""[ID]"",""[Объявления архив]"",""[UserID]='"" & [UserID] & ""' and [Дата публикации]="" & Format([Дата],""\#mm\/dd\/yyyy hh\:nn\:ss\#"") & "" and [Область]='" & Me.Комбинированная105 & "'"") AS ID, DLookUp(""[Год выпуска]"",""[Объявления архив]"",""[UserID]='"" & [UserID] & ""' and [Дата публикации]="" & Format([Дата],""\#mm\/dd\/yyyy hh\:nn\:ss\#"") & ""and [Область]='" & Me.Комбинированная105 & "'"") AS Год" & _
" FROM Пользователи" & _
" WHERE (((Пользователи.Телефон1) Is Null) And ((DMax(""[Дата публикации]"", ""[Объявления архив]"", ""[UserID]='"" & [UserID] & ""' and [Область]='" & Me.Комбинированная105 & "'"")) Is Not Null))" & _
"ORDER BY DMax(""[Дата публикации]"",""[Объявления архив]"",""[UserID]='"" & [UserID] & ""' and [Область]='" & Me.Комбинированная105 & "'"")DESC"
Уважаемые форумчане данный запрос выполняется очень долго подскажите как можно подругому написать запрос. Думаю что надо один групповой запрос на основаниии другого построить. А написать строку не получается. Подскажите как она должна быть написана. Заранее Благодарен!
Igor00082 вне форума Ответить с цитированием
Старый 16.05.2023, 11:35   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

0. это не запрос. это способ его формирования.
покажите запрос ПОСЛЕ его формирования. чему равно strSQL?

1. заменить ДВЕ функции DBLookup на ОДНО соединение (inner join) и ДВА поля присоединенной таблицы.
2. тоже проделать с Dmax (поле присоединенной таблицы) +max +group by
3. order by 3 desc(сортировка по номеру поля результирующего множества)
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 17.05.2023, 07:53   #3
Eugene-LS
Пользователь
 
Аватар для Eugene-LS
 
Регистрация: 23.02.2018
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Igor00082 Посмотреть сообщение
Подскажите как она должна быть написана.
Базку бы, возможно с "липовыми" данными, прикрепили - дело бы скорее пошло.
А так иди знай - какие у вас там поля и индексы.
Eugene-LS вне форума Ответить с цитированием
Старый 21.05.2023, 20:44   #4
Igor00082
Новичок
Джуниор
 
Регистрация: 15.05.2023
Сообщений: 2
По умолчанию База данных

Вот по ссылке база данных
https://drive.google.com/file/d/16Ae...ew?usp=sharing
Igor00082 вне форума Ответить с цитированием
Старый 01.06.2023, 11:16   #5
Eugene-LS
Пользователь
 
Аватар для Eugene-LS
 
Регистрация: 23.02.2018
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Igor00082 Посмотреть сообщение
Вот по ссылке база данных
Попробуйте так:
Код:
SELECT Пользователи.UserID, Телефон1, [QMDДата], ID, Год
FROM (
	SELECT UserID AS QIDUserID, QMDДата, ID, [Год выпуска] AS Год
	FROM (
		SELECT UserID AS QMDUserID, Max([Дата публикации]) AS QMDДата
		FROM [Объявления архив]
		WHERE (Область=[Forms]![Form1]![Комбинированная105]) GROUP BY UserID	
		) AS QMaxDat 
		INNER JOIN [Объявления архив] 
		ON (QMaxDat.QMDUserID = [Объявления архив].UserID) 
		AND (QMaxDat.[QMDДата] = [Объявления архив].[Дата публикации])	
	) AS QUserID 
INNER JOIN Пользователи ON QUserID.QIDUserID = Пользователи.UserID
WHERE (Телефон1 Is Null)
ORDER BY [QMDДата];
Eugene-LS вне форума Ответить с цитированием
Старый 03.06.2023, 19:19   #6
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

не очень понятно , что вы этим запросом хотите получить
- максимальная дата
- количество
..

может более разумно получать итоги по выборке
- город, регион, дилер
- марка
- модель
....
Изображения
Тип файла: png цц22.png (20.9 Кб, 1 просмотров)
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли как то упростить данный запрос? Кирилл121 SQL, базы данных 1 04.11.2020 20:33
Как можно упростить запрос? qqq`` SQL, базы данных 2 27.01.2018 23:49
Упростить код Gefo JavaScript, Ajax 9 22.03.2013 10:01
упростить ИЛИ 0mega Microsoft Office Excel 4 29.08.2010 14:15
sql запрос - как упростить forzi БД в Delphi 7 06.04.2010 11:57