powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как выбрать последние/первые N строк и пронумеровать их?
14 сообщений из 14, страница 1 из 1
Как выбрать последние/первые N строк и пронумеровать их?
    #39298917
гр к
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для какой-нибудь серверной БД я бы использовал оконную ф-ю типа row_number(), а как-то в акцессе это можно сделать?
Мне нужно для каждого прибора учета выбрать последние (по дате) 6 показаний, и пока решения в Акцессе я не вижу(
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39298920
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гр к, без примера на вскидку на словах, может в запросе указать, типа
SELECT TOP 6 [Дата] ...
и поле даты сортировать по убыванию.
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39298936
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вижу только сложный путь. Перекрестным запросом выводишь последнюю запись по дате. Затем по связи один-ко-многим по дате основного запроса к перекрестному отсекаешь значение перекрестного запроса. Снова перекрестный запрос, получаешь вторую дату. Опять отсекаешь, и так 6 раз. Затем связываешь шесть перекрестных запросов.
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39298941
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
SELECT TOP 6 
       DCount("*","Таблица","Дата>=" & Format(Дата,"\#mm\/dd\/yyyy\#")), 
       Дата
FROM Таблица
ORDER BY Дата DESC;
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39298948
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предыдущий пример был для выбора шести последних значений.
Вот для выбора шести первых.
Код: sql
1.
2.
3.
4.
5.
SELECT TOP 6 
       DCount("*","Таблица","Дата<=" & Format(Дата,"\#mm\/dd\/yyyy\#")), 
       Дата
FROM Таблица
ORDER BY Дата;
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39298949
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно спросить? DCount возвращает количество записей или полный набор строковых значений указанного количества данных?
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39298951
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И если полный набор значений, то для каждого прибора в отдельности 6 значений, или просто 6 значений.
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39298952
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39298953
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nikolay_magagin,

Спасибо за упоминание прибора.
Не обратила на это внимания в тексте ТС.
Сейчас вижу, что это у меня не учтено.

Пока переделать запросы некогда.
Может, попозже.
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39298958
nikolay_magagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Используйте функцию DCount для подсчета числа записей в подмножестве, если значения каждой из них выяснять не требуется. Хотя аргумент выражение может выполнять вычисления над полем, функция DCount просто подсчитывает число записей."
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39298967
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот с учетом приборов.

Для выбора первых шести
Код: sql
1.
2.
3.
4.
5.
SELECT T.*,
       DCount("*","Таблица","Прибор=" & Прибор & " AND Дата<=" & Format(Дата,"\#mm\/dd\/yyyy\#")) AS Номер
FROM Таблица AS T
WHERE (SELECT Count(*) FROM Таблица as T1 where T1.Прибор=T.Прибор)<=6;
ORDER BY Прибор, Дата


Для выбора последних шести
Код: sql
1.
2.
3.
4.
5.
SELECT T.*,
       DCount("*","Таблица","Прибор=" & Прибор & " AND Дата>=" & Format(Дата,"\#mm\/dd\/yyyy\#")) AS Номер
FROM Таблица AS T
WHERE (SELECT Count(*) FROM Таблица as T1 where T1.Прибор=T.Прибор)<=6;
ORDER BY Прибор, Дата DESC
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39299062
vitprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как выбрать первые или последние 6 строк уже было сказано. Далее вариант в лоб, зато эффективный. Вы можете использовать временную таблицу, сохранить туда промежуточный результат и на VBA рекордсетом пронумеровать. Если вам только надо вывести номера в отчете access, то там можно добавить столбец с нарастающим итогом.
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39299065
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitprofКак выбрать первые или последние 6 строк уже было сказано....В приведенных запросах выбирается заданное количество (шесть) первых/последних значений для каждого из приборов,
при этом полученные строки нумеруются от 1 до 6 внутри группы записей каждого прибора.
...
Рейтинг: 0 / 0
Как выбрать последние/первые N строк и пронумеровать их?
    #39299170
vitprof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichellevitprofКак выбрать первые или последние 6 строк уже было сказано....В приведенных запросах выбирается заданное количество (шесть) первых/последних значений для каждого из приборов,
при этом полученные строки нумеруются от 1 до 6 внутри группы записей каждого прибора.

Да, спасибо, неверно истолковал вопрос. Ну, тогда можно через VBA. Создаем запрос, который выбирает 6 записей для конкретного прибора (через параметр) и вызываем его в цикле по всем приборам. Результат записываем в отдельную таблицу.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как выбрать последние/первые N строк и пронумеровать их?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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