Выбор наибольшей даты из группы значений (sql запрос) - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день. Через ADO DB подключаюсь к таблице EXCEL: № вагона Дата отправления 58266867 17.01.2018 58267055 10.01.2018 58267311 22.01.2018 58267311 05.01.2018 58268129 11.01.2018 76601145 22.01.2018 76601145 01.01.2018 76601483 29.01.2018 76601483 11.01.2018 76601509 20.01.2018 76601731 20.01.2018 76601731 07.01.2018 76622703 30.01.2018 76622703 10.01.2018 94292976 18.01.2018 94759735 12.01.2018 Пытаюсь для каждого вагона получить наибольшую дату, то есть, результат должен быть: № вагона Дата отправления 58266867 17.01.2018 58267055 10.01.2018 58267311 22.01.2018 58268129 11.01.2018 76601145 22.01.2018 76601483 29.01.2018 76601509 20.01.2018 76601731 20.01.2018 76622703 30.01.2018 94292976 18.01.2018 94759735 12.01.2018 Код следующий:
Не могу понять в чем причина, но результат получается следующим: № вагона Дата отправления 58266867 17.01.2018 58267055 10.01.2018 58267311 22.01.2018 58268129 11.01.2018 76601145 22.01.2018

76601483 29.01.2018 76601483 11.01.2018

76601509 20.01.2018 76601731 20.01.2018

76622703 30.01.2018 76622703 10.01.2018

94292976 18.01.2018 94759735 12.01.2018 Два значения не отфильтровались 76601483, 76622703
Спешу добавить: в таблице есть другие поля, которые нужно вывести, поэтому использую
вместо

Решение задачи: «Выбор наибольшей даты из группы значений (sql запрос)»

textual
Листинг программы
strQuery = "SELECT * FROM " & strPath & _
& " WHERE [Дата отправления] IN (SELECT MAX([Дата отправления]) " _
    & " FROM " & strPath1 _
    & " WHERE t1.[№ вагона]=t.[№ вагона]) " _
& " ORDER BY [№ вагона], [Дата отправления] DESC ;"

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы