SQL не является оптимальным для этого типа задачи оптимизации. Вы можете сделать это, но это грубая сила.
Также полезно, если вы ограничиваете количество строк, которые вы рассматриваете. Например, если вы рассматриваете комбинации до 4:
select t1.nombre, t2.nombre, t3.nombre, t4.nombre,
(coalesce(t1.cantidad, 0) + coalesce(t2.cantidad, 0) + coalesce(t3.cantidad, 0) + coalesce(t4.cantidad, 0)
) as total
from t t1 left join
t t2
on t1.nombre < t2.nombre left join
t t3
on t2.nombre < t3.nombre left join
t t4
on t3.nombre < t4.nombre
where (coalesce(t1.cantidad, 0) + coalesce(t2.cantidad, 0) + coalesce(t3.cantidad, 0) + coalesce(t4.cantidad, 0)
) <= 13
order by total desc
limit 1;
Здесь - это db <> скрипка.
Если вы хотите рассмотреть дополнительные комбинации, вы Можно добавлять дополнительные объединения.