Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

120
Vistas
Laravel9: sumar filas secundarias para padres según ID

Tengo 2 tablas: facturas y coletes. Cuando creo la página de vista para la factura, quiero que todos los coletes estén numerados allí y su totaleuro sumado

básicamente debería verse algo como esto:

 invoiceID coleteID TotalEuro(Of Colete) 1 1 100 2 200 3 400 Total 700 2 4 200 5 300 6 500 Total 1000

Mi consulta se ve así

 $sum = DB::table('coletes') ->join('invoices','coletes.invoice_id','=','invoices.id') ->select(DB::raw(' SUM(coletes.totaleuro) as totaleuro', )) ->get();

Pero en lugar de devolver factura1 total: 700 factura2 total: 1000

Acabo de obtener total: 1700

¿Alguien tiene alguna idea de cómo resolver esta consulta?

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

En tu consulta estas considerando que todos los coletes pertenecen a una sola factura. necesita usar group by para obtener el total del nivel de factura

 $sum = DB::table('coletes') ->join('invoices','coletes.invoice_id','=','invoices.id') ->select(DB::raw(' SUM(coletes.totaleuro) as totaleuro', ))->groupBy('coletes.invoice_id') ->get();

por lo que devolverá dos filas según su ejemplo

Consulta MySQL para su ejemplo

 CREATE TABLE coletes ( id INTEGER PRIMARY KEY, invoice_number INTEGER NOT NULL, product_id INTEGER not NULL, amount INTEGER not null ); -- insert INSERT INTO coletes VALUES (0001, 1,1, 100); INSERT INTO coletes VALUES (0002, 1,2, 200); INSERT INTO coletes VALUES (0003, 1,3, 400); INSERT INTO coletes VALUES (0004, 2,4, 200); INSERT INTO coletes VALUES (0005, 2,5, 300); INSERT INTO coletes VALUES (0006, 2,6, 500); -- fetch SELECT invoice_number, sum(amount) FROM coletes group by invoice_number; Output: invoice_number sum(amount) 1 700 2 1000
about 4 years ago · Santiago Gelvez Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda