Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.17;
Скачать: 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 вся ветка

Текущий архив: 2002.01.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
1-52598
Ross
2001-12-29 19:19
2002.01.17
XP Component


14-52656
kimblch
2001-11-21 05:09
2002.01.17
Как востановить исходники


14-52653
lel
2001-11-22 11:37
2002.01.17
Не понял библиотека ЕhLib , теперь небесплатная и бех исходников что ли???


14-52649
vic_vm
2001-11-21 13:48
2002.01.17
Плакат


14-52647
gone
2001-11-22 16:25
2002.01.17
Киньте пару ссылок pls