Ну для кол-ва свободных мест хватит и простого (integer).
Создай SQL-запрос на выборку:
Код:
Query.SQL.Add('SELECT * FROM (имя базы) WHERE (Имя поля) LIKE (признак продажи)');
После этого посчитать места можно путём:
Код:
Проданые=Общее количество мест - Свободные;
...
... используя свойство .DataSet.RecordCount - кол-во записей в DataSet после выборки нужных