If the data table has an identity field or a unique field that is a clustered index order the order you want to use then this type of syntax may work.
SELECT * FROM tblMain oq WHERE (SELECT COUNT(*) FROM tblMain iq WHERE iq.state = oq.state AND iq.[id] < oq.[id]) < (SELECT topamt FROM tblCtrl ic WHERE ic.state = oq.state)
"Don't roll your eyes at me. I will tape them in place." (Teacher on Boston Public)