表格,其中X,Y和Z具有一些单独的金额 .
样本数据:
Name | Amount | Date
—————|————————|—————————
X | 100 | 15-11-17
Y | 50 | 15-11-17
X | 50 | 15-11-17
Z | 70 | 15-11-17
Z | 30 | 15-11-17
现在我想显示一个表格,其中X将返回一行,其中两行的总和在同一天 .
预期结果:
Name | Amount | Date
—————|————————|—————————
X | 150 | 15-11-17
Y | 50 | 15-11-17
Z | 100 | 15-11-17
那么laravel查询是什么?我使用groupBy() . 但无法获得目标结果 .
这是我的laravel查询代码
$data = DB::table('transactions')
->select('transactions.*')
->groupBy('transactions.title_id')
->whereDate('transactions.created_at', '=', $date)
->get();
并持续得到这个错误
"SQLSTATE[42000]: Syntax error or access violation: 1055 'finance_report.transactions.id' isn't in GROUP BY
有人请帮忙
2 回答
假设您的表名是
transactions
,以及示例表中的列和数据 - SQL查询将是在laravel中你会把它写成
您可以添加WHERE条件以及查询所需的内容 . 但是,如果您需要从表中选择更多列,则还需要将它们添加到
groupBy()
子句中 . 由于ONLY_FULL_GROUP_BY
模式,transactions.*
之类的东西可能无效 . 但它也可能没有意义 .您可以将SUM(金额)与groupBy(日期)一起使用