Thinking a bit more about this, I guess I could use OFFSET instead of DSUM to get the ranges for the sums I need. This still leaves the question of how to expand quantities into a full list, e.g.
<table border=1>
<tr><td>Qty.</td><td>price</td></tr>
<tr><td>2</td><td>$4</td></tr>
<tr><td>1</td><td>$5</td></tr>
<tr><td>1</td><td>$4</td></tr>
<tr><td>3</td><td>$6</td></tr>
</table>
Needs to be converted to:
<table border=1>
<tr><td>Qty.</td><td>price</td></tr>
<tr><td>1</td><td>$4</td></tr>
<tr><td>1</td><td>$4</td></tr>
<tr><td>1</td><td>$5</td></tr>
<tr><td>1</td><td>$4</td></tr>
<tr><td>1</td><td>$6</td></tr>
<tr><td>1</td><td>$6</td></tr>
<tr><td>1</td><td>$6</td></tr>
</table>
or simply:
<table border=1>
<tr><td>price</td></tr>
<tr><td>$4</td></tr>
<tr><td>$4</td></tr>
<tr><td>$5</td></tr>
<tr><td>$4</td></tr>
<tr><td>$6</td></tr>
<tr><td>$6</td></tr>
<tr><td>$6</td></tr>
</table>