How to display a list of potentially filled "categories"

We're trying to provide the user with a potentially large list of elements which can be grouped into categories (one category per element). In addition to provide a quick overview and easy access to the elements the user should also be informed about which categories are still missing elements (some might be required).

Hence our idea is to list all the categories along with some optional data per category and the elements grouped by each category.

However, we're unsure as to how exactly we should go about this.

Here are two ideas we've come up with so far:

  • Nested Tables: the categories are rows in the outer table while the actual elements are rows in the nested table (see row "B" for example). Row "C" would be empty in that case).

Nested Tables

  • Using vertical Tabs: Instead of an outer table we could use a list of tabs and we'd render the table of elements for the selected tab only.

Tabs

Which of those would you prefer? Or would there be a better approach?