Я бы предложил что-то вроде этого:
SELECT
tbl_lab.lab_name
, tbl_lab.room_no
, tbl_lab.capacity
, SUM (
CASE WHEN tbl_workstation.logged_on = 1 OR tbl_workstation.startup = 0 THEN 0 ELSE 1 END
) as AVAILABLE
FROM tbl_lab, tbl_workstation
WHERE
tbl_workstation.lab_name = tbl_lab.lab_name
GROUP BY tbl_lab.lab_name, tbl_lab.room_no, tbl_lab.capacity
ORDER BY tbl_lab.lab_name, tbl_lab.room_no
Я предполагаю, что tbl_workstation.startup означает, что рабочая станция включена и доступна, а рабочие станции, которые не запущены, недоступны.Т.е. рабочая станция не должна входить в систему и должна быть запущена, чтобы быть доступной.