powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / TOP 10
16 сообщений из 16, страница 1 из 1
TOP 10
    #32455401
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, сегодня я видел чудо!
Вот как дело было:

Выбираю из таблицы 3 поля: код товара, дату продажи и цену.
Запрос дает всю историю.

Добавляю TOP 10 (без %).
Получаю 10 записей.

Добавляю сортировку по убыванию дат - 12 записей.

Меняю сортировку на убывание цен - 11 записей.

Читаю в хелпе: Microsoft Access возвращает указанное число записей, а также все записи, у которых значение в первом поле совпадает со значением этого поля в последней отобранной записи.

Возникает 2 вопроса:
1. Как это обойти? Мне нужно ровно 10 записей, даже если у следующих совпадают значения.

2. Почему без сортировки работает правильно?
...
Рейтинг: 0 / 0
TOP 10
    #32455445
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. SELECT DISTINCT TOP 10 Field FROM Table
...
Рейтинг: 0 / 0
TOP 10
    #32455465
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавляю сортировку по убыванию дат - 12 записей.

потому что у 3 последних дат - одно значение откуда ему знать какую из записей оставить а какую отбросить

поставь вторым критерием сортировки поле счетчика
...
Рейтинг: 0 / 0
TOP 10
    #32455637
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, DISTINCT тут не подходит, он испортит картину.
Мне нужно получить среднюю цену последних 10 операций.
А если взять DISTINCT, он даст 10 не последних, а 10 _разных_ последних, а счетчика в таблице нет, поэтому это не то.
...
Рейтинг: 0 / 0
TOP 10
    #32455711
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлексейК потому что у 3 последних дат - одно значение откуда ему знать какую из записей оставить а какую отбросить

поставь вторым критерием сортировки поле счетчика

пусть возьмет любую, мне все равно =) лишь бы не больше 10!
счетчика нет, а второй сортировкой стоит убывание цены.

Но она тоже как назло одинаковая на этих 3 последних записях =((
...
Рейтинг: 0 / 0
TOP 10
    #32455838
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Можно добавить в запрос вычисляемое поле вида rnd(a), где a - одно из других полей.
...
Рейтинг: 0 / 0
TOP 10
    #32456199
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rnd тоже лажа в отличие от бейсика для дос

может я чего не так понимаю но дает она 4 значения по очереди

лучше написать свою функцию - нумератор
...
Рейтинг: 0 / 0
TOP 10
    #32456333
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну что за лажа?! Неужели нет встроенного средства?
Создатели аксеса так и планировали, если нет ключа в наборе данных то пусть каждый юзер напишет себе по функции-нумератору??

И как обычно в хелпе об этом ничего =((
...
Рейтинг: 0 / 0
TOP 10
    #32456384
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нефиг одно и то же обсуждать по кругу \r
тынц\r
\r
и не фиг говорить что этого нет в хелпе.
...
Рейтинг: 0 / 0
TOP 10
    #32456538
авторrnd тоже лажа в отличие от бейсика для дос

может я чего не так понимаю но дает она 4 значения по очереди

Именно что "не так". (видимо передавались отрицательные аргументы, или, иногда,0. Т.е. время от времени последовательность перезапускалась)

авторМожно добавить в запрос вычисляемое поле вида rnd(a), где a - одно из других полей
Неправда ваша. Надо еще и следить чтобы аргумент rnd() был больше 0 (или отсутсвтовал). НАпример rnd(1+[a] - [a])
...
Рейтинг: 0 / 0
TOP 10
    #32456555
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не проще ли


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
public NN as long


public function Numbering (anyfield )
on error resume next
NN = NN +  1 
if err.number <>  0  then NN =  0 
 Numbering = NN
end function


функция будет давать нумерацию по кругу, но для top сгодится
...
Рейтинг: 0 / 0
TOP 10
    #32457389
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да Лошара, ты прав, я нашел этот текст в хепле.

Со вторым вопросом мне уже понятно.
Давайте определимся с первым:

АлексейК предлагает добавить в сортировку ключевое поле, а если нет ключа то писать функцию нумерации.

Я нашел еще один вариант - в первом запросе просто сортируем по дате, второй берет из первого ТОП 10 _не сортируя_.

Какие еще будут мысли?

ЗЫ: А насчет "одно и то же обсуждать по кругу", дык напрягись и сотвори из топика фак, это ж легче чем из воды вино?
...
Рейтинг: 0 / 0
TOP 10
    #32457396
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тебе уже сочинили фак - называется хелп
но ты же его не читаешь
...
Рейтинг: 0 / 0
TOP 10
    #32457404
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
))
...
Рейтинг: 0 / 0
TOP 10
    #32457465
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нда...
...
Рейтинг: 0 / 0
TOP 10
    #32457635
Евгений.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторно ты же его не читаешь
Да ладно, не обижайся! ;-)

Или ты в душе факоборец? тогда почему не сотрешь те статьи, которые уже попали в раздел фак сайта? =))

Насчет встроенного хелпа ни разу не слышал, что он полон или удобен, а вот что статьи плохо связаны друг с другом много раз слышал, и что информация не полная (тот же vbMonday), и что находится не в том месте где должна (правила округления Int\CInt) тоже. Поэтому не путай его с факом.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / TOP 10
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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