diff --git a/backend/src/main/java/persistance/services/AlmacenamientoDAO.java b/backend/src/main/java/persistance/services/AlmacenamientoDAO.java
index 7902943ed85fd6ffacfac508db22f99182812c25..93c1c075b263885e4d5a4ce95320a21249580b5a 100644
--- a/backend/src/main/java/persistance/services/AlmacenamientoDAO.java
+++ b/backend/src/main/java/persistance/services/AlmacenamientoDAO.java
@@ -148,51 +148,79 @@ public class AlmacenamientoDAO implements IAlmacenamiento {
 	@Override
 	@Transactional
 	public List<BienFront> getProductos() {
-	    String jpql = "SELECT b.id, b.nombre, b.tipo, i.precioUnitario, SUM(i.cantidad) " +
+	    String jpql = "SELECT MIN(b.id), b.nombre, b.tipo, MAX(i.precioUnitario), SUM(i.cantidad) " +
                 "FROM Ingrediente i " +
-                "JOIN Bien b ON i.idBien = b.id " +
+                "JOIN i.idBien b " +
                 "WHERE b.tipo = 1 " +
-                "GROUP BY b.id, b.tipo, b.tipo, i.precioUnitario";
+                "GROUP BY b.nombre, b.tipo";
 
-	    return entityManager.createQuery(jpql, BienFront.class).getResultList();
+		  List<Object[]> results = entityManager.createQuery(jpql, Object[].class).getResultList();
+		
+		  List<BienFront> bienFronts = new ArrayList<>();
+		  for (Object[] result : results) {
+		      BienFront bienFront = new BienFront(
+		          (Long) result[0],                 // id (aggregated)
+		          (String) result[1],               // nombre
+		          (Bien.TipoBien) result[2],        // tipo
+		          (Double) result[3],               // precioUnitario (max value per group)
+		          ((Number) result[4]).doubleValue() // totalCantidad (sum per group)
+		      );
+		      bienFronts.add(bienFront);
+		  }
+		
+		  return bienFronts;
 	}
 
 	@Override
 	@Transactional
 	public List<BienFront> getInsumos() {
-	    String jpql = "SELECT b.id, b.nombre, b.tipo, i.precioUnitario, SUM(i.cantidad) " +
+	    String jpql = "SELECT MIN(b.id), b.nombre, b.tipo, MAX(i.precioUnitario), SUM(i.cantidad) " +
                 "FROM Ingrediente i " +
-                "JOIN Bien b ON i.idBien = b.id " +
+                "JOIN i.idBien b " +
                 "WHERE b.tipo = 0 " +
-                "GROUP BY b.id, b.tipo, b.tipo, i.precioUnitario";
+                "GROUP BY b.nombre, b.tipo";
 
-	    return entityManager.createQuery(jpql, BienFront.class).getResultList();
+		  List<Object[]> results = entityManager.createQuery(jpql, Object[].class).getResultList();
+		
+		  List<BienFront> bienFronts = new ArrayList<>();
+		  for (Object[] result : results) {
+		      BienFront bienFront = new BienFront(
+		          (Long) result[0],                 // id (aggregated)
+		          (String) result[1],               // nombre
+		          (Bien.TipoBien) result[2],        // tipo
+		          (Double) result[3],               // precioUnitario (max value per group)
+		          ((Number) result[4]).doubleValue() // totalCantidad (sum per group)
+		      );
+		      bienFronts.add(bienFront);
+		  }
+		
+		  return bienFronts;
 	}
 	
 	@Override
 	@Transactional
 	public List<BienFront> getMatPrim() {
-	    String jpql = "SELECT b.id, b.nombre, b.tipo, i.precioUnitario, SUM(i.cantidad) " +
-                "FROM Ingrediente i " +
-                "JOIN Bien b ON i.idBien = b.id " +
-                "WHERE b.tipo = 2 " +
-                "GROUP BY b.id, b.tipo, b.tipo, i.precioUnitario";
-	    List<Object[]> results = entityManager.createQuery(jpql, Object[].class)
-                .getResultList();
-
-		List<BienFront> bienFronts = new ArrayList<>();
-		for (Object[] result : results) {
-		BienFront bienFront = new BienFront(
-		(Long) result[0],                  // id
-		(String) result[1],                // nombre
-		(TipoBien) result[2],              // tipo
-		(Double) result[3],                // precioUnitario
-		((Number) result[4]).doubleValue() // cantidad (SUM result)
-		);
-		bienFronts.add(bienFront);
-		}
-		
-		return bienFronts;
+	    String jpql = "SELECT MIN(b.id), b.nombre, b.tipo, MAX(i.precioUnitario), SUM(i.cantidad) " +
+	                  "FROM Ingrediente i " +
+	                  "JOIN i.idBien b " +
+	                  "WHERE b.tipo = 2 " +
+	                  "GROUP BY b.nombre, b.tipo";
+
+	    List<Object[]> results = entityManager.createQuery(jpql, Object[].class).getResultList();
+
+	    List<BienFront> bienFronts = new ArrayList<>();
+	    for (Object[] result : results) {
+	        BienFront bienFront = new BienFront(
+	            (Long) result[0],                 // id (aggregated)
+	            (String) result[1],               // nombre
+	            (Bien.TipoBien) result[2],        // tipo
+	            (Double) result[3],               // precioUnitario (max value per group)
+	            ((Number) result[4]).doubleValue() // totalCantidad (sum per group)
+	        );
+	        bienFronts.add(bienFront);
+	    }
+
+	    return bienFronts;
 	}
 
 }