За последние 24 часа нас посетили 34443 программиста и 1709 роботов. Сейчас ищут 779 программистов ...

кроссовый запрос как OLAP

Тема в разделе "MySQL", создана пользователем aleks89, 20 июл 2011.

  1. aleks89

    aleks89 Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    4
    Симпатии:
    0
    Можно ли так сделать?

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

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

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

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

    Или может есть какие-то хитрые бибилиотеки на php, которые подобные вещи (типа OLAP) возволяют генерировать?
     
  2. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    [sql]SELECT
    `id`,
    `title`,
    DATE_FORMAT(`date`, '%Y-%m-01') AS `date`,
    SUM(`sum`) AS `sum`
    FROM
    `table`
    GROUP BY
    DATE_FORMAT(`date`, '%Y-%m')
    ORDER BY
    `date`[/sql]
     
  3. aleks89

    aleks89 Активный пользователь

    С нами с:
    20 июл 2011
    Сообщения:
    4
    Симпатии:
    0
    здесь данные собираются в строках, количество столбцов задано, а хотелось бы, чтобы в качестве столбцов выступали значение DATE_FORMAT(`date`, '%Y-%m')
    и уже на пересечении стобцов и строк находилось значение SUM
     
  4. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Не понятно, можно пример?