Consulta Anidada con Sumatoria en laravel con Query Builder
Consulta Anidada con Sumatoria en laravel con Query Builder.
La consulta se basa en obtener la sumatoria de todos los valores relacionados de la tablaPri con la tabla2. Aplicanco condiciones a la tabla2 que puede tener mas de un valor referenciado de la tablaPri, Relacion 1 a N. condicionando la tabla2 por sus dos estatus.
Para este caso:
DB::table('tablaPri')->join('tabla2','tabla2.id_tablaPri','=','tablaPri.id')
->where('tablaPri.estatus1','=>',0)
->select(
DB::raw('ROUND(SUM(tabla2.monto),2) AS AcumMonto'),
DB::raw('(ROUND(SUM(tabla2.monto)*0.30/100,2)) AS comision'),
DB::raw('((SELECT SUM(TablaVirtual2.montoTV1) AS MontoTV2
FROM
(SELECT `tabla2`.`id_tablaPri`,`tabla2`.`campo_x`,
SUM(`tabla2`.`monto`) as montoTV1
SUM(`tabla2`.`monto`) as montoTV1
FROM tabla2 join ticket on tablaPri.id = tabla2.id_tablaPri
WHERE (tabla2.ganador = 0 and tabla2.pagado=0) and
tabla2.id_tablaPri = tablaPri.id and
(tablaPri.estatus1 = 0 and tablaPri.estatus2 = 0) and
(date(tablaPri.fecha) = date(CURDATE()))
GROUP BY tabla2.id_ticket)
AS TablaVirtual1
WHERE TablaVirtual2.id_campo = tablaPri.id_campo)
WHERE TablaVirtual2.id_campo = tablaPri.id_campo)
) as monto_a_laravel')
->groupBy('ticket.id_terminal')
->get();
->get();
Comentarios