autoua
×
Это мобильная версия форума. Перейти на обычную версию форума ×
Вход
-TIGRA- | Мягкая и пушистая ;о) ****
Нужен хелп по MS Access
28 апреля 2005 в 10:14
Друзья, подскажите, плз

Есть таблица, скажем, 1 млн. записей, нужно из нее random выбрать 1000 записей и засунуть в другую таблицу...

Сейчас делаю это так: делаю дополнительное поле random, потом его сортирую и отбираю путем ctrl-c > ctrl-v в другую таблицу. Получается, мягко говоря, не очень удобно

Можь, кто знает способ полегче?
Staz | опытный писатель ***
RE: Нужен хелп по MS Access
[Re: -TIGRA-] 28 апреля 2005 в 11:55
создаешь запрос, результаты которого отражаются в таблице.
-TIGRA- | Мягкая и пушистая ;о) ****
Re: RE: Нужен хелп по MS Access
[Re: Staz] 28 апреля 2005 в 13:59
очень дельный совет

реально можешь помочь? тогда буду рассказывать подробнее
-Вова- | приверженец **
Re: RE: Нужен хелп по MS Access
[Re: -TIGRA-] 28 апреля 2005 в 15:30
Я вот такой хэлп себе скачал, правда пока не пользовался.
Wolf | важничающий писатель *
Re: RE: Нужен хелп по MS Access
[Re: -TIGRA-] 28 апреля 2005 в 15:49
Обычный запрос, но не на выборку, а на создание таблицы.
Его результаты будут сохранены в отдельной таблице.
-TIGRA- | Мягкая и пушистая ;о) ****
Re: RE: Нужен хелп по MS Access
[Re: Wolf] 28 апреля 2005 в 15:53
Итак....
Создание, добавление, удаление таблиц и всякая чепухень - это элементарно

Как создать таблицу при таких условиях:
количество записей столько-то, выбрать из этого поля рендомом (то есть установка каких-либо условий не принимается, как решение проблемы)

Здесь нужно писать маленькую процедурку или макросик - вот кто знает как .....
-TIGRA- | Мягкая и пушистая ;о) ****
Re: RE: Нужен хелп по MS Access
[Re: -Вова-] 28 апреля 2005 в 15:54
спасибо, попробую глянуть
Uncle | R.I.P ***
Re: Нужен хелп по MS Access
[Re: -TIGRA-] 28 апреля 2005 в 16:01
Вот выдержка из справочной системы MS Access
(Посмотрите еще INSERT ... INTO)


Инструкция SELECT...INTO
Создает запрос на создание таблицы.

Синтаксис
SELECT поле_1[, поле_2[, ...]] INTO новаяТаблица [IN внешняяБазаДанных]
FROM источник

Ниже перечислены аргументы инструкции SELECT...INTO:

Элемент Описание
поле_1, поле_2 Имена полей, которые следует скопировать в новую таблицу.
новаяТаблица Имя создаваемой таблицы. Это имя должно удовлетворять стандартным правилам именования. Если новаяТаблица совпадает с именем существующей таблицы, возникает перехватываемая ошибка.
внешняяБазаДанных Путь к внешней базе данных. Более подробные сведения об этом аргументе можно найти в описании предложения IN.
источник Имя существующей таблицы, из которой отбираются записи. Это может быть одна таблица, несколько таблиц или запрос.


Дополнительные сведения
Запрос на создание таблицы можно использовать для архивирования записей, создания резервных копий таблицы, копий для экспорта в другую базу данных, а также в качестве основы отчета, отображающего данные за конкретный период времени. Например, можно создать отчет «Ежемесячные продажи по областям», выполняя каждый месяц один и тот же запрос на создание таблицы.
-TIGRA- | Мягкая и пушистая ;о) ****
Re: Нужен хелп по MS Access
[Re: Uncle] 28 апреля 2005 в 16:11
спасибо

может быть Вы там высмотите еще куда random ставить?
Uncle | R.I.P ***
Re: Нужен хелп по MS Access
[Re: -TIGRA-] 28 апреля 2005 в 17:38
В один прием у меня никак не получается.
Поробуйте вот так:
1. Создаем дополнительно поле (в примере оно будет называться RANDOM_F) в таблице
с даннымы (в примере она будет называться DATA_TABLE)
2. Создаем запрос на обновление данных в таблице DATA_TABLE. Он будет звучать
примерно так:

UPDATE DATA_TABLE SET DATA_TABLE.RANDOM_F = Rnd([ИМЯ_КЛЮЧЕВОГО_ПОЛЯ_ТАБЛИЦЫ_DATA_TABLE]);

После каждого запуска этого запроса поля RANDOM_F будут принимать все время разные (случайные) значения
3. Создаем запрос на выборку из таблицы DATA_TABLE:

SELECT TOP 100 ПОЛЕ1, ПОЛЕ2, ...
FROM DATA_TABLE
ORDER BY DATA_TABLE.RANDOM_F;

Для того, что бы получить новый набор случайных данных, необходимо запустить эту пару запросов.
Сначала на обновление полей со случайным числом, а затем на выборку 100 верхних записей.
Примечание:
В запросе на обновление используется встроенная функция Rnd с
аргументом ИМЯ_КЛЮЧЕВОГО_ПОЛЯ_ТАБЛИЦЫ_DATA_TABLE, имеется ввиду, блин,
ключевое поле и имеется ввиду, например ID записи
-TIGRA- | Мягкая и пушистая ;о) ****
Re: Спасибо!!!!
[Re: Uncle] 28 апреля 2005 в 17:49
спасибочки большое - обязательно попробую!

пока вышла из ситуации похожим способом:
1) в исходной таблице добавляем поле, куда вставляем рендомом значения,
2) потом сортируем по этому рендом-полю таблицу,
3) потом смотрим значение рендом-поля на нужной записи
4) в запросе на создание таблицы ограничиваем значение рендом-поля числом, которое получили в п.3...

Пока получилось Обошлось даже без программулин

Еще раз спасибо за помощь и за время !!!!!

Додаткова інформація
Модератор:

 AlMat, doctor_b, moderator, Outdriver 

2 користувачів і 50 що побажали залишитися невідомими читають цей форум.

Переглядів теми: 2461