Yes it is possible. You want to use the string aggregation function in BAQ. Here is an example where I aggregate the revisions for a given part number. You can do the same thing with serial numbers.
[Part].[PartNum] as [Part_PartNum],
(STRING_AGG(PartRev.RevisionNum,', ')) as [Calculated_rev]
from Erp.Part as Part
inner join Erp.PartRev as PartRev on
Part.Company = PartRev.Company
and Part.PartNum = PartRev.PartNum
where (Part.PartNum = '"mypartnum"')
group by [Part].[PartNum]
Sorry I don’t know anything about progress or v9. I expect you can still build a BAQ similar to this. However yo may not be able to use the string agg function. Before string agg there was “for xml path”. Perhaps this could be your solution!