【问题标题】:Eloquent sum of derived column in select and also where clauseselect 和 where 子句中派生列的雄辩总和
【发布时间】:2020-07-03 07:06:44
【问题描述】:

我有一个表sales,其中有一个相关的receipts 表。

一次销售可以有许多收据。如果收据总和小于销售额,则有未结余额。

我的 SQL 可以按我想要的方式工作。头疼地试图把它硬塞进雄辩中。

        SELECT `sales`.`id`, `sales`.`created_at`,`sales`.`updated_at`,`sales`.`sales_date`,`sales`.`gross`,    `sales`.`net_amount`,`sales`.`vat_amount`,`sales`.`vat_rate`,`sales`.`description`,
            (SELECT SUM(receipt_gross_amount) as received_gross FROM `receipts` INNER JOIN `sales` WHERE `receipts`.`sales_id` = `sales`.`id`) as received
            FROM `sales`
        ) as unsettled_invoices
        WHERE unsettled_invoices.gross > COALESCE(unsettled_invoices.received,0)

我不会对我已经尝试过的内容感到厌烦,因为它不相关,只会导致 php 挂起并在命令行中发出“killed”...

【问题讨论】:

    标签: sql laravel eloquent subquery aggregate


    【解决方案1】:

    这似乎完成了这项工作......

    $unsettledsalessentries = DB::table('sales')
                ->leftjoin('receipts', 'sales.id','=', 'receipts.sales_id')
                ->select('sales.id','sales.gross','sales.description',DB::raw('SUM(COALESCE(receipts.receipt_gross_amount,0)) as total_receipts'))
                ->groupBy('sales.id','sales.gross','sales.description')
                ->havingRaw('sales.gross > total_receipts')
                ->get();
    

    【讨论】:

      猜你喜欢
      • 2021-02-13
      • 2020-07-22
      • 2014-09-20
      • 1970-01-01
      • 2019-01-08
      • 2018-05-19
      • 1970-01-01
      • 2014-08-23
      • 2022-01-07
      相关资源
      最近更新 更多