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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2011, 17:38   #1
reihtmonbern
Форумчанин
 
Регистрация: 08.01.2011
Сообщений: 102
По умолчанию Сумма столбца

Здравствуйте , подскажите пожалуйста как правильно посчитать сумму всех чисел в поле ( столбце ) в бд ado+acess ?? и вы вестирезультат вычисление в лэйбл ?
reihtmonbern вне форума Ответить с цитированием
Старый 15.03.2011, 13:23   #2
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию

Код:
var c,s:Integer;
ADOTable1.First;
s:=0;
While not ADOTable1.Eof do
begin
c:=ADOTable1.FieldByName['Столбец'].AsInteger;
s:=c+s;
ADOTable1.Next;
end;

Label1.Caption:=IntToStr(s);
Попробуй так.
atihiy2010 вне форума Ответить с цитированием
Старый 15.03.2011, 14:45   #3
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
Лучше с помощью SQL
Код:
SELECT SUM(ВашеПоле) FROM ВашаТаблицаСВашимПолем
Как это выглядит в Delphi
Код:
with ADOQuery1 do begin
  Close;
  SQL.Clear;
  SQL.Add:='SELECT SUM(ВашеПоле) ';
  SQL.Add:='FROM ВашаТаблицаСВашимПолем';
  Open;
  Label1.Caption:=Fields[0].AsString;
end;
До свидания

Последний раз редактировалось OlegVE; 15.03.2011 в 14:49. Причина: Забыл про Label
OlegVE вне форума Ответить с цитированием
Старый 15.03.2011, 15:16   #4
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

И как это должно выглядеть:
Код:
with ADOQuery1 do begin
  Close;
  SQL.Text:='SELECT SUM(ВашеПоле) FROM ВашаТаблицаСВашимПолем';
  Open;
  Label1.Caption:=Fields[0].AsString;
end;
З.Ы.
Я уже не говорю о странной конструкции SQL.Add:='SELECT SUM(ВашеПоле) ';
Которая, опять-таки, должна выглядеть так : SQL.Add('SELECT SUM(ВашеПоле) ');

Последний раз редактировалось mihali4; 06.11.2011 в 01:16.
asmodey1 вне форума Ответить с цитированием
Старый 15.03.2011, 16:22   #5
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Цитата:
Сообщение от asmodey1 Посмотреть сообщение
Я уже не говорю о странной конструкции SQL.Add:='SELECT SUM(ВашеПоле) ';
Которая, опять-таки, должна выглядеть так : SQL.Add('SELECT SUM(ВашеПоле) ');
Конструкция вовсе не странная, согласен что SQL.Add('SELECT SUM(ВашеПоле) '); верно, взял кусочек кода и невнимательно переделал. В итоге, какой бы странной конструкция не казалась

Код:
with ADOQuery1 do begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT SUM(UnitPrice) ');
  SQL.Add('FROM Invoices');
  Open;
  Label1.Caption:=Fields[0].AsString;
end;
P.S. asmodey1, Спасибо за замечание
OlegVE вне форума Ответить с цитированием
Старый 15.03.2011, 19:36   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Лучше так:
Код:
 Form1.ADOQuery1.Close;
 Form1.ADOQuery1.SQL.Text:='select sum(<pole>) as POLE1 from table';
 Form1.ADOQuery1.Open;
 Form1.Label1.Caption:=IntToStr(Form1.ADOQuery1.FieldByName('POLE1').AsInteger);
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 15.03.2011, 23:25   #7
reihtmonbern
Форумчанин
 
Регистрация: 08.01.2011
Сообщений: 102
По умолчанию Дорогие ребята

ребята я пробовал первый код с циклом
Код:
var c,s:Integer;
ADOTable1.First;
s:=0;
While not ADOTable1.Eof do
begin
c:=ADOTable1.FieldByName['Столбец'].AsInteger;
s:=c+s;
ADOTable1.Next;
end;

Label1.Caption:=IntToStr(s);
выдал ошибку а второй раз через sql запрос тоже ошибка
[/CODE]
with ADOQuery1 do begin
Close;
SQL.Text:='SELECT SUM(ВашеПоле) FROM ВашаТаблицаСВашимПолем';
Open;
Label1.Caption:=Fields[0].AsString;
end;
[CODE]

Дайте пожалуйста нормальный код ааа будьте человеками
Изображения
Тип файла: jpg ошибка сумма столбца.jpg (145.5 Кб, 139 просмотров)
Тип файла: jpg ошибка сумма столбца sql.jpg (136.9 Кб, 130 просмотров)
reihtmonbern вне форума Ответить с цитированием
Старый 15.03.2011, 23:49   #8
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию

Только что проверил этот код. Все работает. Просто ты не поставил begin после обьявления переменных, а еще я немного переделал присвоение с:=.
Пробуй и скажи результат...

Код:
var c,s:Integer;
begin
ADOTable1.First;
s:=0;
While not ADOTable1.Eof do
begin
c:=ADOTable1['столбец'];
s:=c+s;
ADOTable1.Next;
end;

Label1.Caption:=IntToStr(s);
end;
atihiy2010 вне форума Ответить с цитированием
Старый 16.03.2011, 07:35   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от atihiy2010
Только что проверил этот код. Все работает. Просто ты не поставил begin
Ага. "щас...."

Вы же видите, что уровень TC ниже всяких ожиданий.
Он просто не понимает, что куски кода, которые ему дают - это банально ПРИМЕРЫ. Он же вставляет их КАК ЕСТЬ.
Прямо в обработчик по нажатию кнопки button6 !
Например, кто Вам сказал, что у него на форме есть ADOTable1 или ADOQuery1 ?! Более того, кто Вам сказал, что он вообще ADO пользуется?..

reihtmonbern, по заданным Вам примерам попытайтесь понять СУТЬ предлагаемых Вам решений. И только после этого используйте в Вашей программе. И не забудьте изменить имя таблицы на имя ВАШЕЙ ТАБЛИЦЫ. А имя поля (столбца) на имя того столбца, который есть в вашей таблице и который Вы и хотите просуммировать!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.03.2011, 11:15   #10
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию

Ну что ж мне ему еще проект свой кинуть? Тем более я же в последнем посте уже написал полный код, который как ты говоришь можно тупо вставить в кнопку методом Copy/Paste)))). А ADOTable судя по всему у автора есть, поскольку в начале он сказал что соеденил это все. Я могу конечно сбросить проект с этим примером, но если автор сечет хоть немного, то сам допрет что к чему...

P.S. И зря мы его обсуждаем, все когда то были начинающими. И ничего в этом такого нет. Ведь если человек спрашивает, значит чем то интересуется в этой жизни и чего то хочет достичь. А я считаю, что это замечательно. Не все ведь сразу богами в Delphi стали...

Во как задвинул
atihiy2010 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма из одного столбца с числами в зависимости от интервала дат из другого столбца Severny Microsoft Office Excel 10 14.03.2011 10:13
сумма ячеек столбца-? Evgenii Компоненты Delphi 5 23.11.2009 18:05
В прямоугольной матрице переставить столбцы так, чтобы сумма элементов столбца росла от первого столбца Aleo13 Помощь студентам 5 15.10.2008 18:34
сумма столбца zetrix БД в Delphi 1 01.11.2006 15:42