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

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

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

Для выбора первых шести
Код: 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
27.08.2016, 21:34
    #39299062
vitprof
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать последние/первые N строк и пронумеровать их?
Как выбрать первые или последние 6 строк уже было сказано. Далее вариант в лоб, зато эффективный. Вы можете использовать временную таблицу, сохранить туда промежуточный результат и на VBA рекордсетом пронумеровать. Если вам только надо вывести номера в отчете access, то там можно добавить столбец с нарастающим итогом.
...
Рейтинг: 0 / 0
27.08.2016, 21:47
    #39299065
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать последние/первые N строк и пронумеровать их?
vitprofКак выбрать первые или последние 6 строк уже было сказано....В приведенных запросах выбирается заданное количество (шесть) первых/последних значений для каждого из приборов,
при этом полученные строки нумеруются от 1 до 6 внутри группы записей каждого прибора.
...
Рейтинг: 0 / 0
28.08.2016, 15:36
    #39299170
vitprof
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать последние/первые N строк и пронумеровать их?
__MichellevitprofКак выбрать первые или последние 6 строк уже было сказано....В приведенных запросах выбирается заданное количество (шесть) первых/последних значений для каждого из приборов,
при этом полученные строки нумеруются от 1 до 6 внутри группы записей каждого прибора.

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


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