A way to merge multiple queues
For recent versions, you can use window functions:
SELECT ID, CustomerID, Volume, Content, runtot
FROM ( 
    SELECT ID
         , CustomerID
         , Content
         , sum(Volume) over (
                partition by CustomerID 
                order by ID
           ) as runtot
    FROM multiqueue
) AS q1 
WHERE runtot &lt; 2000;

EDIT:
If you want at least 1 row for each customer, you can add another window function ROW_NUMBER() that enumerates the result, and use that in your select:
SELECT ID, CustomerID, Volume, Content, runtot
FROM ( 
    SELECT ID
         , CustomerID
         , Content
         , sum(Volume) over (
                partition by CustomerID 
                order by ID
           ) as runtot
         , row_number() over (
                partition by CustomerID 
                order by ID
           ) as rn

    FROM multiqueue
) AS q1 
WHERE runtot &lt; 2000
   OR rn = 1;