Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Наверное, DMax... или нет? / 25 сообщений из 42, страница 1 из 2
26.07.2003, 09:01
    #32218755
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Есть такая проблемка:
нужно из таблицы взять 3 случайных записи. Естественно, чтобы он не повторялись.
вот только как это сделать, представляю ну очень приблизительно. Может, кто-то поделится мыслями по этому поводу?
...
Рейтинг: 0 / 0
26.07.2003, 12:09
    #32218797
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
top 3 в селекте без сортировки - и дело с концом.
...
Рейтинг: 0 / 0
26.07.2003, 15:13
    #32218833
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Top 3 в селекте без сортировки будет чаще всео выдавать одни и те же 3 записи. При отстутствии явно указанной сортировки записи сортируются по ключу (если есть), по индексам (если есть), в порядке создания (если ниаких индексов).
Так что лучше сделать Top 3 с сортировкой по функции Rnd([ЛюбоеПоле])
...
Рейтинг: 0 / 0
26.07.2003, 19:29
    #32218881
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Видимо, я плохо понял про "чтобы не повторялись". Я решил, что эти 3 записи должны быть разными между собой. Если еще нужно, чтобы при следующем обращении выдались 3 других, то Лох прав (впрочем, как всегда).
...
Рейтинг: 0 / 0
26.07.2003, 22:52
    #32218905
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Саныч, ты неправильно понял про случайные записи. Ну и чтоб не повторялись

Марос
Марос

Эх

Ни марось миня
Эх
...
Рейтинг: 0 / 0
26.07.2003, 23:00
    #32218908
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
> Марос
> Марос

Лох, у тебя две записи получились одинаковыми. Мнбым?
...
Рейтинг: 0 / 0
26.07.2003, 23:06
    #32218910
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Саныч, ты бы знал, сколько сраных записей у меня получились одинаковыми...
Я каждый день сдаю экзамен. И каждый день его проваливаю... (с) А.Гордон

Мнбым?
Крю?
...
Рейтинг: 0 / 0
26.07.2003, 23:18
    #32218913
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
> Крю?

Мы нашли общий язык!!! Интересно, что мне для этого не пришлось напиваться. Наверно, я потому и не пью, что и без того такой...

Да простит меня автор вопроса...

Код: plaintext
End Offtopic
...
Рейтинг: 0 / 0
26.07.2003, 23:57
    #32218918
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Возможно, это поможет\r
\r
/topic/41242\r
\r
Топик Tаrantino.
...
Рейтинг: 0 / 0
28.07.2003, 06:22
    #32219147
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Спасибо всем огромное!
Товарищи, господа, вы все просто великолепные дядьки!
...
Рейтинг: 0 / 0
28.07.2003, 07:23
    #32219152
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Вот только проблемка еще возникла...
я собссно, к базе через АСП обращаюсь.
и у меня все хорошо, только раз за разом возвращаются одни и те же записи - типа вроде как randomize не сделал. А где его сделать ума не приложу...
...
Рейтинг: 0 / 0
29.07.2003, 10:05
    #32220206
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Точнее, выбирает он три последних записи почему-то.
Причем, совершенно не играет роли по какому полю я делаю сортировку...
...
Рейтинг: 0 / 0
29.07.2003, 10:40
    #32220260
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Могу предложить не очень изящный,но надежный способ.
1.Нумеруешь записи см. здесь
2.Находишь максимальный порядковый номер.
3.Генеришь 3 случайных числа в диапазоне 1-NNmax
4.Финальный аккорд:
select ... from ... where NN in (num1,num2,num3)
...
Рейтинг: 0 / 0
29.07.2003, 11:15
    #32220318
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
2VIG
я с этого и начал, то есть почти с этого...
Делал выборку в рекордсет, считал количество записей, 3 раза делал rnd(количество записей), так, что бы все 3 числа были разные, сортировал, потом проходил циклом по реордсету и вуаля...
Работает - планета Железяка!
а потом решил что изящнее будет брать три ГОТОВЫЕ СЛУЧАЙНЫЕ записи из запроса... да вот что-то случайность тут какая-то не случайная...
...
Рейтинг: 0 / 0
29.07.2003, 11:47
    #32220387
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
2fundd
Код: plaintext
1.
SELECT top  3  T2.id_val , T2.v1
FROM Table2 t2 order by Int(( 6  * Rnd(t2.id_val)) +  1 );

У меня такой запрос работает!
Только вместо 6 надо использовать число ,соответствующее Мах(id_val)
...
Рейтинг: 0 / 0
29.07.2003, 11:53
    #32220400
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Приведение к инту - убрать!
Выдаст несколько одинаковых интов - и в итоге вернет не 3 записи, а больше.
Собственно без приведения - и домножать не нужно.
...
Рейтинг: 0 / 0
29.07.2003, 12:16
    #32220456
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Л.П,ты как всегда прав.Так тоже работает
Код: plaintext
1.
SELECT top  3  T2.id_val , T2.v1
FROM Table2 t2 order by Rnd(t2.id_val);
...
Рейтинг: 0 / 0
29.07.2003, 14:20
    #32220841
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Что-то я тут не догоняю:
Код: plaintext
1.
SELECT top  3  T2.id_val , T2.v1
FROM Table2 t2 order by Rnd(t2.id_val);
Почему у тебя имена полей через точку? Вообще, что есть T2 ?
...
Рейтинг: 0 / 0
29.07.2003, 14:34
    #32220879
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
И опять же как Мах(id_val) находить? Предварительно делать выборку select *, или там select top 1 order by id_val desc - это понятно, но это опять нагромождение получается



"Хочется ведь, как скорее" (с) Киса Воробьянинов & Ильф & Петров
...
Рейтинг: 0 / 0
29.07.2003, 14:44
    #32220898
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
А ты попробуй догони...
Почитай про синтаксис команды select
В данном случае Т2 это алиас (псевдоним) имени таблицы Table2
Полное имя поля имеет формат [Table_name].field_name
Представь,что твоя таблица называется Штатное_расписание_дважды_орденоносного_завода_имени_двадцати_шести_бакинских_комиссаров_невинно_убиенных_жаркой_летней_ночью
И тебе надо проджойнить ее с еще десятью подобными и выбрать из них поля с одинаковыми именами. Догнал?
Но в данном конкретном сдучае можно и так
Код: plaintext
1.
SELECT top  3  id_val , v1
FROM Table2  order by Rnd(id_val);
...
Рейтинг: 0 / 0
29.07.2003, 15:08
    #32220953
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Это я точно не догнал :)
но то что ты прислал, я уже делал - Лох Позорный посоветовал...
и этот запрос возвращает 3 последние записи.
То есть в Аксессе все работает правильно!
А вот если беру из АСП - такая хрень вылазит.
Баннеры на страничке должны меняться - а они, заразы на месте стоят...
...
Рейтинг: 0 / 0
29.07.2003, 15:11
    #32220959
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
Если не трудно ,покажи как твой запрос в ASP выглядит?
...
Рейтинг: 0 / 0
29.07.2003, 15:15
    #32220969
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
эээ гражданина ты туда не ходи ты сюда ходи а то башка снег попадет совсем дохлый будешь
ASP не знаю, так что извиняй если что, но
Как у тебя в asp работает вызов функции RND??? Я понимаю, что там тоже VB, но меня терзают смутные сомненья. Попробуй просто для всех записей выведи Rnd(id_val) куда-нибудь
З.Ы. Если мне не изменяет мой склероз ((с) Саныч) кто-то недавно жаловался на работу рнд именно в асп. Утверждалось, что оно выдает на выбор 4 числа
...
Рейтинг: 0 / 0
29.07.2003, 15:19
    #32220982
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
вот тут\r
Пост АлексейК от 23 июл 03, 16:44
...
Рейтинг: 0 / 0
29.07.2003, 16:13
    #32221093
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наверное, DMax... или нет?
На форуме SQL прелагали сортировать GUID. Самое что ни наесть уникальное значение (в пределах планеты, правда). Издержки: лишнии 16 байт на каждую запись.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Наверное, DMax... или нет? / 25 сообщений из 42, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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