Выбор наибольшей даты из группы значений (sql запрос) - VB
Формулировка задачи:
Добрый день.
Есть таблица значений:
№ вагона Дата отправления
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
76601509 20.01.2018
76601731 20.01.2018
94292976 18.01.2018
94759735 12.01.2018
Два значения не отфильтровались 76601483, 76622703
Есть таблица значений:
№ вагона Дата отправления
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
Листинг программы
strPath = "[Отчет1$] as t IN '" & ActiveDocument.Path & "\ОтгрузкаТест.xlsx' " & "[Excel 12.0;Provider=Microsoft.ACE.OLEDB.12.0;Mode=Read;Extended Properties='HDR=YES;']" strPath1 = "[Отчет1$] as t1 IN '" & ActiveDocument.Path & "\ОтгрузкаТест.xlsx' " & "[Excel 12.0;Provider=Microsoft.ACE.OLEDB.12.0;Mode=Read;Extended Properties='HDR=YES;']" strQuery = "SELECT * FROM " & strPath & " WHERE Not Exists (SELECT 1 FROM " & strPath1 & " WHERE t1.[№ вагона]=t.[№ вагона] And t1.[Дата отправления] > t.[Дата отправления]) " & " ORDER BY [№ вагона], [Дата отправления] DESC ;"
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д