One way would be to use data blending (because the two data sets are different levels of aggregation).
In the attached workbook I've connected to your two tables separately (I had to change some numbers in the first table because between the two there were only 3 matches in seating category and those matches had 0 tickets).
Tableau automatically recognises the field to blend on (seating category) so the calculation below gives the % seats sold:
Hope that helps
Seating example.twbx 55.2 KB
Very helpful - thanks so much Steven.
One follow up question: I have a third dataset (e.g. below) which lists a number of tickets for a specific concert code that I first want to remove from the total ticket sum for that particular concert and then work out the % of total across all seating categories. The calculation would be something like (sum (number of tickets) - sum (tickets to remove))/ sum(capacity) except that now I would need to blend on the concert code field, not the seating category field. How would I go about doing this?
Dataset 3 example
Concert code Tickets to remove 2013-12-04 Wed(E)-1204PEVE 15
Again you can blend the "remove tickets" data to the seats sold data using concert code, ensuring that the first field you add to the view is from the seats sold data source (which makes it the primary) you can then bring in capacity and tickets to remove from the other tables.
HOWEVER - You'll now need to be careful with levels of aggregation. Your Capacity is at Seating Category level but your tickets sold are aggregated to Concert. Therefore, as I've shown with sheet 3, the tickets to remove value is displayed as the same for all seating categories.
It really depends upon what level of detail you want to report on. If you need to show Seating Category then you can't really include the tickets removed but if you're aggregating up to concert level then you can show a sum of the capacity and number of tickets sold in the same view.
Seating example.twbx 95.3 KB