关于查询,联接和求和的问题,给我返回错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于查询,联接和求和的问题,给我返回错误相关的知识,希望对你有一定的参考价值。
尝试加载数据表时我的代码有问题,我在Laravel 5.5中使用Yajra数据表
这是我的用于加载数据表的代码
public function getTotalMes(){
return datatables()
->eloquent(Copropietario::select('copropietario')
->join('clientes', 'clientes.id', '=', 'copropietario.cliente_id' )
->join('egresos', 'egresos.cliente_id', '=', 'clientes.id' )
->join('morosos', 'morosos.copropietario_id', '=', 'copropietario.numerodepto' )
->join('medidor', 'medidor.nummedidor', '=', 'copropietario.numerodepto')
->join('calderas', 'calderas.nummedidor', '=', 'copropietario.numerodepto')
->select('copropietario.id',
'copropietario.numerodepto',
'egresos.mescobro',
'egresos.aniocobro',
DB::raw('SUM(egresos.montopago) as suma_total'),
DB::raw('ROUND( (SUM( egresos.montopago ) * ( copropietario.alicuotatotal ))) as gasto_comun'),
DB::raw('ROUND( (((SUM( egresos.montopago ) * ( copropietario.alicuotatotal)))) * (0,05)) as fondo_reserva'),
'copropietario.cliente_id',
'medidor.totalmes as medidor',
'calderas.totalmes as caldera',
'morosos.totalmoroso as deuda_anterior',
'copropietario.alicuotatotal')
->where('egresos.mescobro', '=', 'Octubre')
->where('medidor.fechamedicion', '=', '2019-10-30')
->where('egresos.conceptopago', '<>', 'Caldera Condominio')
->where('egresos.aniocobro', '=', '2019')
->groupBy('copropietario.numerodepto'))
->toJson();
}
并向我返回此错误
{
"draw": 0,
"recordsTotal": 0,
"recordsFiltered": 0,
"data": [],
"error": "Exception Message:
SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s) (SQL: select count(*) as aggregate from (select `copropietario`.`id`, `copropietario`.`numerodepto`, `egresos`.`mescobro`, `egresos`.`aniocobro`, SUM(egresos.montopago) as suma_total, ROUND( (SUM( egresos.montopago ) * ( copropietario.alicuotatotal ))) as gasto_comun, ROUND( (((SUM( egresos.montopago ) * ( copropietario.alicuotatotal)))) * (0,05)) as fondo_reserva, `copropietario`.`cliente_id`, `medidor`.`totalmes` as `medidor`, `calderas`.`totalmes` as `caldera`, `morosos`.`totalmoroso` as `deuda_anterior`, `copropietario`.`alicuotatotal` from `copropietario` inner join `clientes` on `clientes`.`id` = `copropietario`.`cliente_id` inner join `egresos` on `egresos`.`cliente_id` = `clientes`.`id` inner join `morosos` on `morosos`.`copropietario_id` = `copropietario`.`numerodepto` inner join `medidor` on `medidor`.`nummedidor` = `copropietario`.`numerodepto` inner join `calderas` on `calderas`.`nummedidor` = `copropietario`.`numerodepto` where `egresos`.`mescobro` = Octubre and `medidor`.`fechamedicion` = 2019-10-30 and `egresos`.`conceptopago` <> Caldera Condominio and `egresos`.`aniocobro` = 2019 group by `copropietario`.`numerodepto`) count_row_table)"
}
答案
这里的问题是您正在子查询中进行汇总(求和与舍入)。效果是“ groupby”将不起作用。 以上是关于关于查询,联接和求和的问题,给我返回错误的主要内容,如果未能解决你的问题,请参考以下文章