Вероятно, это
WITH subjectList AS
(
SELECT course, Subject1 as subject
FROM TABLE2
UNION ALL
SELECT course, Subject2 as subject
FROM TABLE2
UNION ALL
SELECT course, Subject3 as subject
FROM TABLE2
UNION ALL
SELECT course, Subject4 as subject
FROM TABLE2
UNION ALL
SELECT course, Subject5 as subject
FROM TABLE2
UNION ALL
SELECT course, Subject6 as subject
FROM TABLE2
)
SELECT T1.Edate, T1.course, sl.subject, count(*) as subject_count
FROM TABLE1 T1
JOIN subjectList sl on T1.Course = sl.course and T1.Subject = sl.subject
GROUP BY T1.Edate, T1.course, sl.subject
может быть это
WITH subjectList AS
(
SELECT course, Subject1 as subject
FROM TABLE2
UNION ALL
SELECT course, Subject2 as subject
FROM TABLE2
UNION ALL
SELECT course, Subject3 as subject
FROM TABLE2
UNION ALL
SELECT course, Subject4 as subject
FROM TABLE2
UNION ALL
SELECT course, Subject5 as subject
FROM TABLE2
UNION ALL
SELECT course, Subject6 as subject
FROM TABLE2
)
SELECT T1.Edate, T1.course, sl.subject,
count(*) OVER(PARTITION BY T1.course, sl.subject) as subject_by_course_count,
count(*) OVER(PARTITION BY sl.subject) as subject_count
FROM TABLE1 T1
JOIN subjectList sl on T1.Course = sl.course and T1.Subject = sl.subject
GROUP BY T1.Edate, T1.course, sl.subject
будет у вас всегда есть 6 субъектов столбцов в таблице 2 или будет число столбцов меняется. –
спасибо 4 ответа, YES 6 фиксированных столбцов темы –
Также вы используете версию SQL-Server? –