0
salesitems 관련 모델을 가진 판매 모델이 있습니다. 판매 모델에는 몇 가지 수정 자, 즉 할인이 있습니다. 모든 것이 잘 작동하는 것 같군cakephp/mysql에서 일별 판매 값을 얻으십시오.
var $virtualFields = array(
'total' => '@vad:=(SELECT COALESCE(SUM(price*quantity), 0) FROM saleitems WHERE saleitems.sale_id = Sale.id)',
'paid' => '@pad:=(SELECT COALESCE(SUM(amount), 0) FROM payments WHERE payments.sale_id = Sale.id)',
'discountamount' => '@dis:=(SELECT COALESCE(SUM(price*quantity), 0) FROM saleitems WHERE saleitems.sale_id = Sale.id)*(0.01 * Sale.discount)',
'saleamount' => '@vad - @dis',
);
:
매출 합계를 얻으려면, 내가 이런 짓을했는지. 그러나, 내가보고를하고, 하루에 총 판매량을 얻으려고 할 때, 나는 뇌의 힘의 한계에 맞서 싸웠다. 누군가 이걸 할 수있는 올바른 방법을 가르쳐 줄 수 있습니까? 그냥 PHP에서 그들을 tot해야합니까? 또는 쿼리를 실행합니까? 케이크의 옴으로 이것을 할 수있는 방법이 있습니까? 내가 쿼리 방법을 시도,
SELECT
created,
(@vad:=(SELECT COALESCE(SUM(price*quantity), 0) FROM saleitems WHERE `saleitems`.`sale_id` = `Sale`.`id`)) AS `Sale__total`,
(@pad:=(SELECT COALESCE(SUM(amount), 0) FROM payments WHERE `payments`.`sale_id` = `Sale`.`id`)) AS `Sale__paid`,
(@dis:=(SELECT COALESCE(SUM(price*quantity), 0) FROM saleitems WHERE `saleitems`.`sale_id` = `Sale`.`id`)*(0.01 * `Sale`.`discount`)) AS `Sale__discountamount`,
sum(@vad - @dis) AS `Sale__saleamount`
FROM `sales` AS `Sale` WHERE `Sale`.`account_id` = 37 GROUP BY DAY(`Sale`.`created`) order by created
를하지만 나에게주고있다 완전히 잘못된 답변 :(
이