Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: кроссовый запрос как OLAP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: запросы с агрегацией по дате
aleks
Отправлено: 20 Июля, 2011 - 10:40:02
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Можно ли так сделать?

Суть, в таблице лежит id, наименование, дата в формате '2011-07-21', и сумма в деньгах

как мне сделать запрос, чтобы получилась таблица
в заголовке
id,месяц по порядку типа '2011-01-01','2011-02-01','2011-03-01' ...

а в пересечении стояло общая сумма в деньгах за весь месяц (своего рода агрегация по дате)


На мой взгляд так нельзя сделать? Можно ли сделать без вложенных запросов?

Или может есть какие-то хитрые бибилиотеки на php, которые подобные вещи (типа OLAP) возволяют генерировать?
 
 Top
Мелкий Супермодератор
Отправлено: 20 Июля, 2011 - 10:51:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `date`,sum(`money`) AS `sum` FROM `table` GROUP BY `date` ORDER BY `date`


-----
PostgreSQL DBA
 
 Top
aleks
Отправлено: 20 Июля, 2011 - 13:53:10
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Мелкий пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `date`,sum(`money`) AS `sum` FROM `table` GROUP BY `date` ORDER BY `date`


не, дата может быть любая
а нужно агрегировать данные за весь месяц, образно говоря должны быть создана столбцы за месяца, когда данные присутствуют
 
 Top
Мелкий Супермодератор
Отправлено: 20 Июля, 2011 - 14:36:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT date(`date`) AS `monat`, sum(`money`) AS `sum` FROM `table` GROUP BY `monat` ORDER BY `monat`


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB