Let me first say that I don't want to (nor will I) create a page with 72 queries in it. I just did that as an exercize to prove to the "powers that be" it is a far from ideal thing to do, but it does illustrate my problem. Second, both sets of data are in the same table.... ProductID ProductType ProductName 1 shirt large 2 shirt small 3 ties red 4 ties gnu It seem to me that the code for getting the output I want would be something similar to (with one recordset (SELECT ProductID, ProductType, ProductName FROM Product))pseudocode (syntactically incorrect) below; do while not rs("ProductType").EOF write rs("ProductType")<br> while not rs("ProductName").EOF write rs("ProductName")<br> rs("ProductName").MoveNext wend loop end if Of course a lot of code has been left out, like checking the ProductType and doing an increment. I do see that code like this would be helpful for lots of applications, like listing offices by state, etc. Am I on the right path here? As an aside, Rudy, why is data shaping evil? ___________________________________________________________________________ Visit http://www.visto.com. Find out how companies are linking mobile users to the enterprise with Visto.