Doctrine 2 Использование Оператора Sum В Dql С Джойнами Нескольких Таб

Тема в разделе "SQL", создана пользователем Nixel, 26 апр 2013.

  1. Nixel

    Nixel New Member

    Регистрация:
    13 дек 2010
    Сообщения:
    4
    Симпатии:
    0
    Всем привет!

    У меня есть работающий запрос на DQL

    Код (Text):
    SELECT partial cap.{id, title, name},
    clogin,
    partial ccampaig.{id, name},
    cadv, ckeyword,
    partial ckeywordstat.{id, clicksSearch, sumSearch, showsSearch}

    FROM MyBundle:ContextAdvPlatform cap

    LEFT JOIN cap.contextLogins clogin
    LEFT JOIN clogin.contextCampaigns ccampaig
    LEFT JOIN ccampaig.contextAdvs cadv
    LEFT JOIN cadv.contextKeywords ckeyword
    LEFT JOIN ckeyword.contextKeywordStats ckeywordstat

    GROUP BY ckeywordstat.contextKeyword

    Если поменять
    Код (Text):
    partial ckeywordstat.{id, clicksSearch, sumSearch, showsSearch}
    на
    Код (Text):
    partial ckeywordstat.{
    id,
    SUM(clicksSearch),
    SUM(sumSearch),
    SUM(showsSearch)
    }
    То вылезет исключение
    Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_CURLY_BRACE, got '('

    Если поменяем на
    Код (Text):
    ckeywordstat.id,
    SUM(ckeywordstat.clicksSearch),
    SUM(ckeywordstat.sumSearch),
    SUM(ckeywordstat.showsSearch)

    То получим 4 поля в самом конце вернувшегося массива без суммирования.

    Как правильно написать запрос, который будет группировать ckeywordstat для каждого ckeyword при этом сумируя поля clicksSearch, sumSearch, showsSearch

    Doctrine version 2.3.3-DEV

    Всем заранее спасибо за помощь ! ))
     
Загрузка...

Поделиться этой страницей