Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2010, 21:06   #1
Dev1
 
Регистрация: 27.04.2010
Сообщений: 3
Печаль бд + расчет в %

Всем добрый день!
есть такое задание!
Разработать и написать программу для получения статистических данных о клиентах. Данные о клиентах:
1)Учетный номер клиента
2)возраст
3)пол(женский, мужской)
4)Семейное положение (одинок, в браке, разведен)


Программа должна выдавать на экран результаты следующих вычислений:
А)% клиентов в возрасте до 21 года;
Б)% клиентов в возрасте от 21 года и старше;
В)% мужчин;
Г)% женщин;
Д)% в браке;
Е)% одиноких;
Ж)% разведенных;

я сделал базу в акцессе..в Делфи.. все готово... но нужно только посчитать! подскажите как это сделать... и при помощи чего?
база в делфи при помощи:
ADOtable
ADOconnection
DataSource1
DBGrid1

очень нужна подсказка...
Dev1 вне форума Ответить с цитированием
Старый 12.05.2010, 10:25   #2
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

если мне не изменяет память, подсчитать можно используя простую математическую формулу:
(<клиентов в возрасте до 21 года>/<общее колличество клиентов>)*100
а если серьёзно: на форму можно бросить adoquery и для каждого из условий написать запрос.
Вариант А)
Код:
 adoquery1.sql.text:='select <поле_учёнтый_номер_клиента> from <таблица_с_клиентами> where <поле_с_возврастом><21';
 adoquery1.open;
 if not(adoquery1.isempty)
   then a:=(adoquery1.recordcount/<количество_клиентов>)*100;
 adoquery1.active:=false;
Вариант Б)
Код:
 adoquery1.sql.text:='select <поле_учёнтый_номер_клиента> from <таблица_с_клиентами> where <поле_с_возврастом> > 21';
 adoquery1.open;
 if not(adoquery1.isempty)
   then a:=(adoquery1.recordcount/<количество_клиентов>)*100;
 adoquery1.active:=false;
Вариант В)
Код:
 adoquery1.sql.text:='select <поле_учёнтый_номер_клиента> from <таблица_с_клиентами> where <поле_пол>='+quotedstr('м');
 adoquery1.open;
 if not(adoquery1.isempty)
   then a:=(adoquery1.recordcount/<количество_клиентов>)*100;
 adoquery1.active:=false;
Вариант Г)
Код:
 adoquery1.sql.text:='select <поле_учёнтый_номер_клиента> from <таблица_с_клиентами> where <поле_пол>='+quotedstr('ж');
 adoquery1.open;
 if not(adoquery1.isempty)
   then a:=(adoquery1.recordcount/<количество_клиентов>)*100;
 adoquery1.active:=false;
Вариант Д)
Код:
 adoquery1.sql.text:='select <поле_учёнтый_номер_клиента> from <таблица_с_клиентами> where <поле_семейное_положение>=1';
// для примера пускай 1 - это клиенты в браке, 2 - одинокие, 3 - разведённые
 adoquery1.open;
 if not(adoquery1.isempty)
   then a:=(adoquery1.recordcount/<количество_клиентов>)*100;
 adoquery1.active:=false;
Вариант Е)
Код:
 adoquery1.sql.text:='select <поле_учёнтый_номер_клиента> from <таблица_с_клиентами> where <поле_семейное_положение>=2';
// для примера пускай 1 - это клиенты в браке, 2 - одинокие, 3 - разведённые
 adoquery1.open;
 if not(adoquery1.isempty)
   then a:=(adoquery1.recordcount/<количество_клиентов>)*100;
 adoquery1.active:=false;
Вариант Ж)
Код:
 adoquery1.sql.text:='select <поле_учёнтый_номер_клиента> from <таблица_с_клиентами> where <поле_семейное_положение>=3';
// для примера пускай 1 - это клиенты в браке, 2 - одинокие, 3 - разведённые
 adoquery1.open;
 if not(adoquery1.isempty)
   then a:=(adoquery1.recordcount/<количество_клиентов>)*100;
 adoquery1.active:=false;
Тяжело быть бестолковым.....

Последний раз редактировалось Dark_Spirit; 12.05.2010 в 10:39.
Dark_Spirit вне форума Ответить с цитированием
Старый 12.05.2010, 13:19   #3
Dev1
 
Регистрация: 27.04.2010
Сообщений: 3
По умолчанию

оо..спасиба... а вот еще... где и как лучше это вывести на экран? ))
Dev1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчет из 3 листов maksvas Microsoft Office Excel 6 18.11.2009 10:11
Сложный расчет З/П VictorM Microsoft Office Excel 7 08.11.2009 16:51
Расчет в запросе! pobedin SQL, базы данных 22 03.09.2009 15:46
Кредит, расчет. valerij Microsoft Office Excel 6 14.04.2009 23:15
Расчет движения voodoomedved Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 25.02.2009 23:07