gpt4 book ai didi

php - 多个字段的 Laravel SUM 使用原始查询返回 null

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:17 26 4
gpt4 key购买 nike

以下是我的查询:

 $sales = DB::table('sales')
->leftJoin('category_sales', 'category_sales.sale_id', '=', 'sales.id')
->leftJoin('department_sales', 'department_sales.sale_id', '=', 'sales.id')
->leftJoin('store_configs', 'store_configs.id', '=', 'sales.store_config_id')
->select('sales.date',
DB::raw('store_configs.store_dba'),
DB::raw('sales.id'),
DB::raw('(sales.taxable + sales.non_taxable + category_sales.amount + department_sales.amount) as total_sales'),
DB::raw('0.0825*(sales.taxable + category_sales.amount + department_sales.amount) as total_tax'))
->groupBy('date')->orderBy('date', 'desc')
->get();

当我在 category_sales 和 department_sales 表中有值时,我得到了正确的值。比方说,我没有任何 category_sales 中 sales_id 的金额值 表,total_salestotal_tax 的最终结果为空。

我的问题是:如果数据存在,我仍将如何对字段的值求和?

taxable, non_taxable, and amount'

category_sales 和 department_sales 中是 defaults0

的整数

我的表结构只是一个想法,与 department_sales 类似:

CREATE TABLE `category_sales` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`amount` int(11) NOT NULL DEFAULT '0',
`category_id` int(10) unsigned DEFAULT NULL,
`sale_id` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `category_sales_category_id_index` (`category_id`),
KEY `category_sales_sale_id_index` (`sale_id`),
CONSTRAINT `category_sales_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE CASCADE,
CONSTRAINT `category_sales_sale_id_foreign` FOREIGN KEY (`sale_id`) REFERENCES `sales` (`id`) ON DELETE CASCADE) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

最佳答案

您可以将可为空的字段包装到 IFNULL() 函数中,如下所示:

DB::raw('(IFNULL(sales.taxable,0)
+ IFNULL(sales.non_taxable,0)
+ IFNULL(category_sales.amount,0)
+ IFNULL(department_sales.amount,0)
) as total_sales'),
DB::raw('0.0825*(IFNULL(sales.taxable,0)
+ IFNULL(category_sales.amount,0)
+ IFNULL(department_sales.amount,0)) as total_tax'))

关于php - 多个字段的 Laravel SUM 使用原始查询返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37768329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com