![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем доброго времени суток. Интересует следующий вопрос: имеется таблица БД товары, в ней поля наименование, кол-во, цена. Нужно подсчитать общую сумму товара на складе. И делать это постоянно ну или как бы правильно выразиться динамически, когда добавляется товар пересчитывать, удаляется тоже пересчитывать. Я делал до этого времени с помощью цикла, по каждой записи умножая кол-во на цену и складывая. Но все же пришел к выводу что при больших объемах информации это очень сильно будет тормозить...... Каким способом было бы лучше всего это реализовать?
|
#2
|
|||
|
|||
![]() Запросом.
Код:
SELECT ID, Name, SUM(Quantity*Price) FROM Table GROUP BY ID, Name Код:
UPDATE Table SET Summa = Quantity * Price WHERE ID = 555 -- если есть какой-то ID, то делать для него, если для все - убери эту строку |
#3
|
|||
|
|||
![]() и потом в процедуре на добавление или удаление товара заного деактивировать и активировать запрос?
Подскажи еще для таких расчетов dll библиотеки используются или это вообще не то ![]() ![]() |
#4
|
|||
|
|||
![]() Ну я не знаю, зачем тебе это надо. Вообще, глупо хранитьь эту сумму, т.к. ее очешь просто посчитать.
|
#5
|
|||
|
|||
![]() Цитата:
Есть еще 1 вопрос ![]() Код:
procedure TForm1.DBGrid1TitleClick(Column: TColumn); Var f:string; begin f:= Column.FieldName; dm.Tovar.Sort:=f + ' DESC'; end; Можно ли как нибудь сделать так чтобы, нажимаешь 1 раз на столбец сортируется по возрастанию, еще раз щелкаешь по убыванию? |
#6
|
|||
|
|||
![]() Цитата:
Код:
procedure TForm1.DBGrid1TitleClick(Column: TColumn); Var f:string; begin f:= Column.FieldName; if dm.Tovar.Sort=f + ' DESC' then dm.Tovar.Sort:=f else dm.Tovar.Sort:=f + ' DESC'; end; ![]() Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#7
|
|||
|
|||
![]() как просто все оказывается
![]() ![]() А что за флаг, интересно? Последний раз редактировалось windaws, 17.07.2010 в 13:54. |
#8
|
|||
|
|||
![]() Цитата:
Код:
fl:boolean; и на шелчке тогда будет вот так: Код:
procedure TForm1.DBGrid1TitleClick(Column: TColumn); Var f:string; begin f:= Column.FieldName; fl:=not fl; if fl then dm.Tovar.Sort:=f else dm.Tovar.Sort:=f + ' DESC'; end; Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |