Monday, November 30, 2009

Re: Multiple SUM in query

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: