СУММА неделя с учением - PullRequest
3 голосов
/ 20 марта 2012

Март 2012:

9   27  28  29  1   2   3   4
10  5   6   7   8   9   10  11
11  12  13  14  15  16  17  18
12  19  20  21  22  23  24  25
13  26  27  28  29  30  31

Первый столбец это номер недели в году - в php date ("W") ; У меня в базе данных MySQL:

id | count | date
1  | 2     | 2012-02-28 11:11:11 // 9 week
2  | 4     | 2012-02-29 11:11:11 // 9 week
3  | 5     | 2012-03-01 11:11:11 // 9 week
4  | 2     | 2012-03-03 11:11:11 // 9 week
5  | 5     | 2012-03-05 11:11:11 // 10 week
6  | 3     | 2012-03-07 11:11:11 // 10 week
7  | 6     | 2012-03-08 11:11:11 // 10 week
8  | 2     | 2012-03-12 11:11:11 // 11 week
9  | 6     | 2012-03-13 11:11:11 // 11 week
10 | 5     | 2012-03-16 11:11:11 // 11 week
11 | 1     | 2012-03-16 11:11:11 // 11 week
12 | 9     | 2012-03-16 11:11:11 // 11 week

Как мне СУММАТЬ с Symfony 1.4 и Doctrine 1.2 за всю неделю?

В этом примере должно отображаться:

week | count
9    | 13
10   | 14
11   | 23

Как должен выглядеть запрос с Doctrine?

Ответы [ 2 ]

13 голосов
/ 20 марта 2012

В соответствии с этим http://sqlfiddle.com/#!2/9701b/6, я выполню этот запрос:

$query = Doctrine_Query::create()
   ->select("sum(s.count), date_format(s.date, '%v') as date_formatted")
   ->from('SomeTable s')
   ->groupBy('date_formatted');

Я использовал as date_formatted в предложении select, потому что Doctrine не понимает date_format в groupBy метод.

2 голосов
/ 20 марта 2012

Вы просто указываете сумму в выбранной вами части DQL:

$query = Doctrine_Query::create()
   ->select('sum(amount)')
   ->from('some_table');
...