Certificado

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
                        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)
                    ) as monto_a_laravel')
         ->groupBy('ticket.id_terminal')
->get();

Comentarios

Entradas populares