Вместо того, чтобы включать язык и все эти причудливые вещи, если вы знаете FACT, ваша строка является конвертируемой, просто выполните это:
#include
#include
using namespace std;
int main()
{
wstring w(L"bla");
string result;
for(char x : w)
result += x;
cout << result << '\n';
}
Пример в реальном времени здесь
Новая версия, включающая все предметы, посещаемые учителем
SELECT u.subject_code, u.subject_title, count(s.class_no) as attended , tc.t_count total, CONCAT(FORMAT(100 * count(s.class_no) / tc.t_count, 0), '%') '%att'
FROM subjects u
LEFT JOIN teacher_attendance t ON t.subject_code = u.subject_code
JOIN (SELECT subject_code, COUNT(*) t_count FROM teacher_attendance GROUP BY subject_code) tc ON tc.subject_code = u.subject_code
LEFT JOIN student_attendance s ON t.class_no = s.class_no AND s.student_id = 'mca1701'
WHERE semester = 3
GROUP BY u.subject_code, u.subject_title
Я использовал отдельный подзапрос для подсчета общей стоимости. (Я пропустил таблицу предметов, но ее легко добавить)
SELECT t.subject_code, count(t.class_no) as attended , tc.t_count total, CONCAT(FORMAT(100 * count(t.class_no) / tc.t_count, 0), '%') %att
FROM student_attendance s
JOIN teacher_attendance t ON t.class_no = s.class_no
JOIN (SELECT subject_code, COUNT(*) t_count FROM teacher_attendance GROUP BY subject_code) tc ON tc.subject_code = t.subject_code
WHERE student_id='mca1701'
GROUP BY subject_code