Вниз
Скачать: CL | DM;

Сумма чисел по полю   Найти похожие ветки 

← →
andey   (2001-12-11 21:04) [0]

Вопрос может глупый, но я не знаю как подсчитать сумму чисел по определенному полю.


← →
TSV ©   (2001-12-11 21:26) [1]


select sum(field1) from table1

Полный синтаксис такой: SUM([ALL | DISTINCT] expression)

Удачи. Почитай книгу по SQL.


← →
Dick ©   (2001-12-12 00:03) [2]

Вопрос действительно смешной. Почитай про SQL и аггрегатные функции.


← →
Dick ©   (2001-12-12 00:04) [3]

А еще про group by.


← →
Vaddya   (2001-12-12 23:20) [4]

Ну а если поля два, то как? Например Name - товар, Price - его цена. Как вывести весь товар и его цену, а внизу в дополнительной записи еще и полную стоимость , т. е. SUM(Price). Я делал "SELECT Name, SUM(Price) FROM Table1 GROUP BY Name", но так выводится то же самое, что и при "SELECT * FROM Table1", только название поля в DBGrid SUM OF Price. Ну так все таки как?


← →
Girl   (2001-12-13 03:59) [5]

если выводится то же самое, что и при "SELECT * FROM Table1", значит, у тебя строчки Name все разные. Соответственно и суммировать то тебе нечего. Если будет хотя бы две строки с одинаковым Name, то тогда в том самом поле SUM OF Price будет сумма.


← →
Nest ©   (2001-12-13 10:32) [6]

Делай так!
SELECT name,price FROM pricelist
UNION
SELECT NULL,SUM(price) FROM pricelist


Напиши, помогло ли.


← →
TonnyS ©   (2001-12-13 12:15) [7]

когда надо таблицу, а внизу - итог то 2 варианта:
1. а)Сначала запрос, выдающий таблицу всех товаров с ценами типа
Select * from ... where <условие1>
б) потом в другом Query запрос типа
Select sum(price) AS sum_price from ... where <условие1>
(то же условие, что и в п. а)
после query2.open что-то типа:
label1.caption := query2.fieldbyname("sum_price").AsString;2. пункт а - такой же,
б) var
summa : double;
i1 : integer;
...
Summa := 0;
query1.DisableControls; //чтоб не отображался пробег по DBGrid
query1.First;
i1 := query1.fieldByName("price").index;
while not query1.eof do begin
summa := summa + query1.fields[i1].AsFloat;
query1.next;
end;
query1.First; //возвращаемся вверх
query1.EnableControls;
label1.caption := floattostr(summa);

вроде всё.


← →
ilysha   (2001-12-13 17:36) [8]

А можно воспользоваться набором EhLib, там такая функция реализована в самом DBGrid.
Пиши, скину линк
http://gratis97.chat.ru


← →
Vaddya   (2001-12-13 20:04) [9]

Nest: в принципе, я тоже думал, что нужно использовать UNION, но по примеру приведенного запроса не вышло, пишет "Invalid use of keyword. Token: NULL". Так что пиши еще, если есть какие идеи.
TonnyS: насчет А - преподаватель сказала, что реально сделать и с одним TQuery. Насчет Б - нужен реляционный способ доступа, а это, как известно, навигационный. Хотя, спасибо за помощь.
Так что прошу содействия.


← →
andey   (2001-12-13 22:00) [10]

Спасибо у меня получилось по способу №1 TonnyS !!!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.005 c
3-52468
SAlex
2001-12-14 08:07
2002.01.17
Фильтрация данных таблицы по данным из двух других таблиц


3-52487
andey
2001-12-11 21:04
2002.01.17
Сумма чисел по полю


3-52473
З.Г.
2001-12-04 07:24
2002.01.17
Как отключить автоматическое сохранение данных в таблице, т.е. чтобы я мог внести данные и самому выбрать сохранить или не сохранять таблицу


4-52686
YUS
2001-11-16 06:36
2002.01.17
CreateDialog -????


14-52666
MJH
2001-11-18 13:56
2002.01.17
nVidia Drivers 21.88




   Наверх