powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск максимума по нескольким полям
11 сообщений из 11, страница 1 из 1
Поиск максимума по нескольким полям
    #40007595
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача: Есть 2 таблицы Т1-главная, Т2-подчинённая, отношение один ко многим.
В подчинённой таблице (для каждой записи главной таблицы) надо отсортировать сначала по дате Д2, потом по тексту Т2, результат
это верхняя запись. Сортировка по убыванию.
Хотел сделать с помощью сортировки и оператора Тор 1, но не получается. почему то получается так как будто Тор 1 всегда берётся
от всего содержимого Т2 .
Решил задачу с помощью 2-х последовательных группировок и агрегатной функции Макс, пример прилагается.
Решение с помощью 3х запросов: Запрос1, Запрос2, Запрос3. Результат в Запрос3.
Но группировка это тяжёлая операция, хотелось бы сортировками и Тор 1.
Заранее благодарен.
...
Рейтинг: 0 / 0
Поиск максимума по нескольким полям
    #40007630
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geizer1,
Код: vbnet
1.
2.
SELECT Т1.Код1, Т1.т1, Т1.д1, DMax("д2","т2","код12=" & [код1]) AS Выражение1
FROM Т1;
...
Рейтинг: 0 / 0
Поиск максимума по нескольким полям
    #40007659
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku
Geizer1,
Код: vbnet
1.
2.
SELECT Т1.Код1, Т1.т1, Т1.д1, DMax("д2","т2","код12=" & [код1]) AS Выражение1
FROM Т1;


Работает, но сомневаюсь что будет быстрее моего варианта.
Это всё мне надо сделать на SQL Server на самом деле, а там функции DMax нет.
Я хотел средствами SQL это сделать, вот вопрос реально ли это.
...
Рейтинг: 0 / 0
Поиск максимума по нескольким полям
    #40007678
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что запросы на сервере?
...
Рейтинг: 0 / 0
Поиск максимума по нескольким полям
    #40007682
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geizer1
Это всё мне надо сделать на SQL Server на самом деле
А там есть CTE и ROW_NUMBER().
...
Рейтинг: 0 / 0
Поиск максимума по нескольким полям
    #40007717
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geizer1

Работает, но сомневаюсь что будет быстрее моего варианта....
Если Вас так сильно беспокоит скорость не надо выполнять запросы на сервере....
(скорости же функции DMAX более чем достаточно в этом запросе)
...
Рейтинг: 0 / 0
Поиск максимума по нескольким полям
    #40007724
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku
Если Вас так сильно беспокоит скорость не надо выполнять запросы на сервере....

ХМ.. Вы ничего не путаете?
...
Рейтинг: 0 / 0
Поиск максимума по нескольким полям
    #40007780
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,
Да,путаю.Имел ввиду сокращение обращений к серверу по каждому "чиху"
(Чтоб сказать что-то конкретное надо знать логику работы БД)
...
Рейтинг: 0 / 0
Поиск максимума по нескольким полям
    #40007921
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina
Geizer1
Это всё мне надо сделать на SQL Server на самом деле
А там есть CTE и ROW_NUMBER().

Спс, надо подумать.
...
Рейтинг: 0 / 0
Поиск максимума по нескольким полям
    #40007922
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku
Geizer1

Работает, но сомневаюсь что будет быстрее моего варианта....
Если Вас так сильно беспокоит скорость не надо выполнять запросы на сервере....
(скорости же функции DMAX более чем достаточно в этом запросе)

Я планирую это добавить в уже существующую Вьюху.
...
Рейтинг: 0 / 0
Поиск максимума по нескольким полям
    #40007929
Geizer1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сначала в подзапросе
ROW_NUMBER() OVER (PARTITION BY Код12 ORDER BY Д2 DESC, Т2 DESC) AS RowNum
а потом в основном запросе фильтр по RowNum=1, результат правильный.
На этом и остановлюсь, всем спс.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Поиск максимума по нескольким полям
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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