Сложная выборка...

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Kurt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 105
Зарегистрирован: 05.01.2003 (Вс) 23:25

Сложная выборка...

Сообщение Kurt » 24.04.2003 (Чт) 20:57

Допустим, есть база с данными о людях : 1-й столбец - пол, 2-й - возраст и т.д. Как написать прогу, к-я бы создавала список людей по таким условиям: 20% мужчин, 80% женщин, 50% старше 60 лет и т.д.
Как такое сотворить? :)

moderator
Модератор
Модератор
 
Сообщения: 1896
Зарегистрирован: 10.12.2001 (Пн) 18:11
Откуда: Украина, Харьков

Сообщение moderator » 24.04.2003 (Чт) 21:29

Учить SQL.

Почитать можно на нашем сайте и вот тут - http://www.sql.ru
Модератор
http://www.vbstreets.ru / moderator@vbstreets.ru

... Почетные награды: [*], [+], [!]. Все еще впереди...

Kurt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 105
Зарегистрирован: 05.01.2003 (Вс) 23:25

Сообщение Kurt » 25.04.2003 (Пт) 16:39

Ну, это-то ясно. :)
Но кто-нибудь КОНКРЕТНО это делал? А то некоторые уверяют меня, что на SQL такое невозможно... :?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.04.2003 (Пт) 16:56

При желании можно почти все. Другое время, что делать подобную выборку только на SQL неоптимально. Но в любом случае можно примерно так (вариант для Oracle)
Код: Выделить всё
select *
from PEOPLES
where decode(POL,1,1,0)*decode(sign(rand()-0.8),1,1,0)=1
  and decode(POL,2,1,0)*decode(sign(rand()-0.2),1,1,0)=1

В список должно входить 20% мужчин (POL=1) и 80% женщин (POL=2). Для возраста условие задается по аналогии.

Пояснения к функиям:
decode(value, mach1,return1, ..., returnelse) -- сравнение по парам
sign(value) -- знак числа, 1 для положительных, -1 для отрицательных, 0 для 0.
rand() -- случайное число в диапазоне 0...1
Lasciate ogni speranza, voi ch'entrate.

Kurt
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 105
Зарегистрирован: 05.01.2003 (Вс) 23:25

Сообщение Kurt » 25.04.2003 (Пт) 20:12

alibek:
Спасибо. это я вроде понял. А как это все исполнить на VB? Помоги ламеру в базах данных (на VB!! only I hope...).
Нужно ли будет устанавливать дополнительные драйвера, если приложение должно быть полностью автономным и устанавливать все, что ему нужно на совершенно "чистом" компе. (разумеется, где установлен Windows :) ).
Т.е. я собираюсь создавать инсталятор.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

    TopList