Ben modeli ile ilgili bir salesitems ile, bir satış modeli var, satış modeli bazı nitelemeler, yani indirim var.
Satış toplamlarını almak, i bu yaptım:
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',
);
Hangi tüm iyi çalışıyor gibi görünüyor. I bazı raporlama yapmak ve günde toplam satış miktarını almak için denemek için gelip Ancak, i beyin gücünün sınırının karşı çalıştırmak. Biri bunu yapmak için doğru yolu işaret edebilir? Ben sadece php onları tot gerekir? ya da bir sorgu çalıştırmak? Ya kekinin orm ile bunu yapmanın bir yolu var mı?
Ben sorgu yöntemi denedi,
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
Ama bu bana tamamen yanlış cevap veriyor: (
Herhangi bir rehberlik için teşekkürler
irade