Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Флейм
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.08.2014, 18:53
АНЯ17 АНЯ17 вне форума
Прохожий
 
Регистрация: 16.08.2014
Сообщения: 22
Версия Delphi: delphi 7
Репутация: 10
По умолчанию Набор Данных статистика

Здравствуйте,
как сделать что бы из Набор Данных-считала поле пол в edit1.text и edit2.text количество полов ?
так написала ...
Код:
For i:=0 to Table1.RecordCount-1 do
begin
Table1.First;
Table1.Fields.Fields[sex].Text:='Муж';
Table1.Fields.Fields[sex].Text:='Жен';
end;
Админ: Пользуемся тегами для оформления кода!

оно не работает ???
за ран спс.
Изображения
Тип файла: jpg 2014-08-16_173343.jpg (50.8 Кбайт, 6 просмотров)

Последний раз редактировалось Admin, 16.08.2014 в 19:19.
Ответить с цитированием
  #2  
Старый 16.08.2014, 18:58
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 559
Версия Delphi: XE5
Репутация: 18
Восклицание

Тебе количество нужно узнать? сколько мужиков сколько женщин??
__________________
Нет ничего не возможного. Вопрос только во времени...
Ответить с цитированием
  #3  
Старый 16.08.2014, 19:01
Аватар для Electronic_Arts
Electronic_Arts Electronic_Arts вне форума
Местный
 
Регистрация: 13.07.2006
Адрес: на земле
Сообщения: 559
Версия Delphi: XE5
Репутация: 18
По умолчанию

Код:
begin
Edit1.text:='0';
Edit2.text:='0';
for I := 1 to Table1.RecordCount do
begin
if table1.FieldByName('sex').Value='Man' then
edit1.text:=inttostr(strtoint(Edit1.text)+1);
end else
begin
edit2.text:=inttostr(strtoint(Edit2.text)+1);
end;
Table1.next;
end;
__________________
Нет ничего не возможного. Вопрос только во времени...

Последний раз редактировалось Electronic_Arts, 16.08.2014 в 19:03.
Ответить с цитированием
Этот пользователь сказал Спасибо Electronic_Arts за это полезное сообщение:
АНЯ17 (16.08.2014)
  #4  
Старый 16.08.2014, 19:18
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Тогда уж лучше так
Код:
var
m, j: integer;
...
m:= 0;
j:= 0;
Table1.First;

while Table1.Eof do
begin
if Table1.FieldByName('sex').Value='Муж' then
Inc(m)
else
Inc(j);
Table1.next;
end;
Edit1.text:= IntToStr(m);
Edit2.text:= IntToStr(j);
хотя запросом намного легче и быстрее
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
АНЯ17 (16.08.2014)
  #5  
Старый 16.08.2014, 20:36
АНЯ17 АНЯ17 вне форума
Прохожий
 
Регистрация: 16.08.2014
Сообщения: 22
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Пасибо, за ответ. Все работала

Последний раз редактировалось АНЯ17, 16.08.2014 в 20:50.
Ответить с цитированием
  #6  
Старый 16.08.2014, 18:59
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

На первый взгляд Table1.First в цикле возвращает указатель каждый раз на первую запись ( Next попробуйте), переменная цикла тоже не используется - просто крутится
Ответить с цитированием
  #7  
Старый 24.08.2014, 18:08
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию

Цитата:
Сообщение от АНЯ17
Здравствуйте,
как сделать что бы из Набор Данных-считала поле пол в edit1.text и edit2.text количество полов ?
так написала ...
Код:
For i:=0 to Table1.RecordCount-1 do
begin
Table1.First;
Table1.Fields.Fields[sex].Text:='Муж';
Table1.Fields.Fields[sex].Text:='Жен';
end;
Админ: Пользуемся тегами для оформления кода!

оно не работает ???
за ран спс.

Запрос который посчитает все и сразу
'SELECT COuNT(SEX) from имя таблицы group by SEX' -запрос будет корректен если в вашей таблице нет повторяющихся людей.
Никаких ластов , фирстов и циклов не надо
Ответить с цитированием
  #8  
Старый 28.08.2014, 15:16
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Цитата:
Сообщение от Heneken
Запрос который посчитает все и сразу
'SELECT COuNT(SEX) from имя таблицы group by SEX' -запрос будет корректен если в вашей таблице нет повторяющихся людей.
Никаких ластов , фирстов и циклов не надо
+ 1
Пользуйте только Query

Но 2е циферки все же однозначно не дают понять сколько "м", а сколько "ж"
Добавим WHERE
Код:
SELECT COUNT(sex) FROM <имя таблицы> WHERE sex = "муж" GROUP BY sex
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #9  
Старый 28.08.2014, 20:43
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ох уж эти советчики. Даже запрос правильный дать не могут.
Код:
SELECT Sex, COUNT(Sex) FROM <имя таблицы> GROUP BY Sex
Получишь 2 или 3 записи (3 - если можно поле Sex оставлять пустым).

Еще вариант - использовать компоненты, которые позволяют автоматически посчитать подобную статистику, например cxGrid из набора DevExpress.

Ну и кодом, как предложил Alegun. Ну и желательно в таком коде запоминать положение курсора и восстанавливать его после окончания подсчета.
Ответить с цитированием
  #10  
Старый 29.08.2014, 08:57
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 576
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от lmikle
Ох уж эти советчики. Даже запрос правильный дать не могут.
Ага. Давайте их забаним.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #11  
Старый 02.09.2014, 16:37
АНЯ17 АНЯ17 вне форума
Прохожий
 
Регистрация: 16.08.2014
Сообщения: 22
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Код:
SELECT podra, sex, count(*) as C  FROM roj WHERE  d_reg between :f and :j GROUP BY podra, sex ORDER BY 1, 2'

Я хотела бы из поля (с) результаты кол-во полов с подразделение указать(вынести) в Edit1.text и Edit2.text.
Например Октябрьский район Муж=1 в(Edit1.text) и Жен=1 в (Edit2.text ) и дале Первомайский р. Муж=3 в(Edit3.text). . . и.т.д


и в итоге должна получатся так

Октябрьский район Муж.1 Жен.1
Изображения
Тип файла: jpg 2014-09-02_173813.jpg (39.1 Кбайт, 10 просмотров)
Ответить с цитированием
  #12  
Старый 02.09.2014, 19:39
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Делай селект из подселекта.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter