Tuesday, December 1, 2009

Re: Multiple SUM in query

Figured out what the problem was for me. I had inserted this afterFind
() function in the app Model

http://teknoid.wordpress.com/2008/09/29/dealing-with-calculated-fields-in-cakephps-find/

so that the calculated fields show up in the appropriate models when
returned, and not in an ambiguous array. However it was causing this
SUM problem if there were more than one, so i found later when reading
the comments, one of the posters had made a modification to it so that
it would return multiples:

http://teknoid.wordpress.com/2008/09/29/dealing-with-calculated-fields-in-cakephps-find/#comment-921

Solved my problem perfectly. Hope that helps someone, maybe the OP.

On Nov 30, 9:23 pm, "Dr. Loboto" <drlob...@gmail.com> wrote:
> Just checked on cakes 1.2.5 and 1.2.4 - all fine.
>
> Query:
> $this->Test->find(
>         'all',
>         array (
>                 'fields' => array ('field3', 'SUM(field1) AS Sum1', 'SUM(field2) AS
> Sum2'),
>                 'group'  => array ('field3')
>         )
> );
>
> Generated SQL:
> SELECT `Test`.`field3`, SUM(field1) AS Sum1, SUM(field2) AS Sum2 FROM
> `test` AS `Test` WHERE 1 = 1 GROUP BY field3
>
> Result:
> Array
> (
>     [0] => Array
>         (
>             [Test] => Array
>                 (
>                     [field3] => test 1
>                 )
>
>             [0] => Array
>                 (
>                     [Sum1] => 4
>                     [Sum2] => 6
>                 )
>
>         )
>
>     [1] => Array
>         (
>             [Test] => Array
>                 (
>                     [field3] => test 2
>                 )
>
>             [0] => Array
>                 (
>                     [Sum1] => 5
>                     [Sum2] => 6
>                 )
>
>         )
> )
>
> Source data:
> id      field1  field2  field3
> 1       1       2       test 1
> 2       3       4       test 1
> 3       5       6       test 2
>
> On Nov 30, 7:47 am, cakebaker <misterpar...@gmail.com> wrote:
>
> > I have this same problem happening right now. You can put other fields
> > in that are not sums and they are returned just fine, but of all the
> > SUMs you put it it only returns the first occuring one. It is bizzarr.
> > It is generating the appropriate SQL statement, because when i take
> > the SQL statement it creates from  the debugger, and run it in
> > phpmyadmin manually, it returns exactly what i need, with all the
> > appropriate sums. But for some reason it isnt returning it in cakephp.
> > Any help on this would be great.
>
> > On Nov 28, 6:48 am, Robin Marx <marx.ro...@gmail.com> wrote:
>
> > > Since I can't seem to find the answer on google, nor in the docs, I
> > > hope someone here can help me.
>
> > > Whenever I try to do a query with more then 1 SUM-field in it, it will
> > > only return the first SUM-field, not the other ones in its results.
>
> > > So for instance :
>
> > > SUM( amount1 ) as amountOne, SUM( amount2 ) as amountTwo  +   group on
> > > year
>
> > > will only return amountOne as result.
>
> > > When I do :
>
> > > SUM( amount2 ) as amountTwo,  SUM( amount1 ) as amountOne  +   group
> > > on year
>
> > > it will only return amountTwo.
>
> > > Anyone got an idea why this behaviour occurs and how to fix it?
>
> > > We would be most grateful because it's quite urgent for a school
> > > project.

Check out the new CakePHP Questions site http://cakeqs.org and help others with their CakePHP related questions.

You received this message because you are subscribed to the Google Groups "CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en

No comments: