Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Запрос с группировкой - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Access » Запрос с группировкой (Включить в запрос с группировкой дополнительные поля)
Запрос с группировкой
alefkontar Дата: Четверг, 24.08.2023, 13:44 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Добрый день, мастера!
Суть задачи: есть две таблицы (связь 1:М): Организации (КодЮЛ, Наименование,...) и Профилактические визиты (КодВизита, Объект - поле связи с Организацией, ДатаНачала, Комментарий...). Нужно составить запрос на выборку такого рода:
Все организации, независимо от того, были визиты или нет;
Если визиты были (а их может быть от 1 до ...), то должны выбираться ПОСЛЕДНИЕ по времени, т.е. с максимальной датой, и указываться соответствующие комментарии, основания и пр.
Если визитов не было, остаются пустые поля.

Я составил такой запрос:

[vba]
Код
SELECT Организации.ОГРН, Организации.Наименование, Организации.ЭлПочта, MAX([Профилактические визиты].ДатаНачала) AS [Max-ДатаНачала], [Профилактические визиты].Основание, [Профилактические визиты].Комментарий
FROM Организации LEFT JOIN [Профилактические визиты] ON Организации.КодЮЛ = [Профилактические визиты].Объект
GROUP BY Организации.ОГРН, Организации.Наименование, Организации.ЭлПочта, [Профилактические визиты].Основание, [Профилактические визиты].Комментарий, Организации.ДатаПрекрДе
HAVING (((Организации.ДатаПрекрДе) IS NULL));
[/vba]
но он работает неверно.
Прошу помочь.
Спасибо.
Прошу прощения за кросс с киберфорумом, но задача срочная.


Сообщение отредактировал Serge_007 - Четверг, 24.08.2023, 13:49
 
Ответить
СообщениеДобрый день, мастера!
Суть задачи: есть две таблицы (связь 1:М): Организации (КодЮЛ, Наименование,...) и Профилактические визиты (КодВизита, Объект - поле связи с Организацией, ДатаНачала, Комментарий...). Нужно составить запрос на выборку такого рода:
Все организации, независимо от того, были визиты или нет;
Если визиты были (а их может быть от 1 до ...), то должны выбираться ПОСЛЕДНИЕ по времени, т.е. с максимальной датой, и указываться соответствующие комментарии, основания и пр.
Если визитов не было, остаются пустые поля.

Я составил такой запрос:

[vba]
Код
SELECT Организации.ОГРН, Организации.Наименование, Организации.ЭлПочта, MAX([Профилактические визиты].ДатаНачала) AS [Max-ДатаНачала], [Профилактические визиты].Основание, [Профилактические визиты].Комментарий
FROM Организации LEFT JOIN [Профилактические визиты] ON Организации.КодЮЛ = [Профилактические визиты].Объект
GROUP BY Организации.ОГРН, Организации.Наименование, Организации.ЭлПочта, [Профилактические визиты].Основание, [Профилактические визиты].Комментарий, Организации.ДатаПрекрДе
HAVING (((Организации.ДатаПрекрДе) IS NULL));
[/vba]
но он работает неверно.
Прошу помочь.
Спасибо.
Прошу прощения за кросс с киберфорумом, но задача срочная.

Автор - alefkontar
Дата добавления - 24.08.2023 в 13:44
alefkontar Дата: Четверг, 24.08.2023, 14:05 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Задача решена на киберфоруме. Спасибо. Тему закрывайте.
Если кому понадобится, привожу решение:
[vba]
Код
SELECT Организации.*, Q.*
FROM Организации LEFT JOIN
(
SELECT * FROM [Профилактические визиты] AS PV
WHERE ДатаНачала = (SELECT MAX(ДатаНачала) FROM [Профилактические визиты] WHERE Объект = PV.Объект)
) AS Q
ON Организации.КодЮЛ = Q.Объект
WHERE Организации.ДатаПрекрДе IS NULL
[/vba]


Сообщение отредактировал Serge_007 - Четверг, 24.08.2023, 14:13
 
Ответить
СообщениеЗадача решена на киберфоруме. Спасибо. Тему закрывайте.
Если кому понадобится, привожу решение:
[vba]
Код
SELECT Организации.*, Q.*
FROM Организации LEFT JOIN
(
SELECT * FROM [Профилактические визиты] AS PV
WHERE ДатаНачала = (SELECT MAX(ДатаНачала) FROM [Профилактические визиты] WHERE Объект = PV.Объект)
) AS Q
ON Организации.КодЮЛ = Q.Объект
WHERE Организации.ДатаПрекрДе IS NULL
[/vba]

Автор - alefkontar
Дата добавления - 24.08.2023 в 14:05
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Access » Запрос с группировкой (Включить в запрос с группировкой дополнительные поля)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!