Определенно можно вернуть несколько счетов.
Другими словами, ваш запрос может быть изменен следующим образом:
select p.vcprojectname, COUNT(DISTINCT md.intmoduleid) as no.of.mod, COUNT(md.intscreensfunc) as no.of.screen
from projects as p
left join (select m.intprojectid, m.intmoduleid, m.vcmodulename, s.intscreensfunc, s.vcname
from modules as m
left join screens_func as s
on m.intmoduleid=s.intmoduleid)md
on p.intprojectid=md.intprojectid
GROUP BY p.vcprojectname
Основываясь на данных вашего примера, я сделал вывод, что между модулями и экранами будет отношение один-много, и поэтому вам нужно подсчитать distinct
для модулей, но такое же требование не потребуется для экранов (так как Похоже, что один экран не появится несколько раз в данном модуле) Если это не так, вы также можете добавить distinct
к количеству экранов.