|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
вычисление за один день и за месяц
Помогите с прграммой.
Есть таблица accesse вот такой структуры: Дата Всего Продано Осталось 01.01.2009 10 4 6 01.01.2009 12 3 9 02.02.2009 5 4 1 02.02.2009 4 3 1 12.02.2009 45 33 12 12.02.2009 60 32 28 12.02.2009 21 20 1 Как подсчитать продано за одну дату и за месяц в ADOTable? Я делаю вот так: Код:
procedure TForm1.FormShow(Sender: TObject); var Summ:Integer; // bm1:TBookmarkStr; begin Summ:=0; DataModule2.DataSource1.DataSet:=nil; // bm1:=DataModule2.ADOTable1.Bookmark; DataModule2.ADOTable1.First; while DataModule2.ADOTable1.Eof<>true do begin Summ:=Summ+DataModule2.ADOTable1DSDesigner2.AsInteger; DataModule2.ADOTable1.Next; end; // DataModule2.ADOTable1.Bookmark:=bm1; DataModule2.DataSource1.DataSet:=DataModule2.ADOTable1; Label1.Caption := IntToStr(Summ); end; lmikle: Ну все, следующий, кто не будет использовать теги, получит бан на неделю! Если вам все пофиг, так подумайте о других, ведь неудобно читать! У меня выводит общее значение столбца. А нужно, чтобы при выделении одной даты, подчитывался результат этой даты. неважно сколько сторк с этой датой, одна или десять. Вобщем нужно суммировать столбец по дате. |
#2
|
|||
|
|||
Если Вам необходим только результат, т.е. не надо потом непосредственно по данным в этой же строке что-то править, сделайте в Access объект типа QUERY с группировкой по дате и групповой операцией сумма по количеству и полями дата и сумма - Access это сделает и правильно и быстро - а в программе считывайте это через объект Table или Query с фильтрацией/ отбором/ поиском - как Вам надо.
|
#3
|
|||
|
|||
Далаю в ADOQuery вот такой запрос.
Код:
procedure TForm1.FormShow(Sender: TObject); begin DataModule2.ADOQuery1.Close; DataModule2.ADOQuery1.SQL.Clear; DataModule2.ADOQuery1.SQL.text:=('select sum(Продано) from Таблица1 Group by (Дата);'); DataModule2.ADOQuery1.Open; Form1.Edit1.text:=DataModule2.ADOQuery1.Fields[0].AsString; DataModule2.ADOQuery1.Close; DataModule2.ADOQuery1.SQL.Clear; DataModule2.ADOQuery1.SQL.text:=('select sum(Продано) from Таблица1 Group by Month(Дата);'); DataModule2.ADOQuery1.Open; Edit2.text:=DataModule2.ADOQuery1.Fields[0].AsString; end; Как сделать так, чтобы при выделении строки с новой датой, месяцом менялись данные в Edit. Последний раз редактировалось Gene72, 22.02.2009 в 14:19. |