Форум: "Базы";
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];
ВнизСумма чисел по полю Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c