Показать сообщение отдельно
  #6  
Старый 04.05.2013, 21:03
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Ksandra
Огромное спасибо, что помогаете, но можете более подробно описать. Я просто ту тему проболела, а в конспектах мало что нашла(((

А что тут объяснять? Использованна агрегрегатная функция SUM и группировка через GROUP BY. Значение для группировки вычисляется динамически с помощью функции SubStr. В зависимости от диалекта SQL (читай СУБД), можно применять разные методы для вычисления значения группировки. Если тебе нужна сумма за конкретный период, а не полный отчет, то можно обойтись без группировки, а просто ограничить выборку через WHERE:
Код:
-- для дня
select sum("цена блета" *  "Кол - во проданных билетов") from "Таблица" where "Время отправки" >= '2013-05-01' and "Время отправки" < '2013-05-02'; 

-- для месяца
select sum("цена блета" *  "Кол - во проданных билетов") from "Таблица" where "Время отправки" >= '2013-05-01' and "Время отправки" < '2013-06-01';

-- для года
select sum("цена блета" *  "Кол - во проданных билетов") from "Таблица" where "Время отправки" >= '2013-01-01' and "Время отправки" < '2014-01-01';

ЗЫ. Представление даты в конкретной СУБД может отличаться.

Вообще, читай о GROUP BY и аггрегатных функциях. А вообще, задавай конкретные вопросы, честно говоря, просто лениво тут набирать целые статьи, тем более, что все это есть, стоит только поискать.
Ответить с цитированием