Sql 如何从子查询中获取多行?
您好,我有以下问题: 上面写着[Enquete Vraag]=Enquete_Vraag,我试图将其作为子查询:Sql 如何从子查询中获取多行?,sql,sql-server,Sql,Sql Server,您好,我有以下问题: 上面写着[Enquete Vraag]=Enquete_Vraag,我试图将其作为子查询: [Enquete Vraag] = ( SELECT enquete_vraag FROM enquete_vraag ) 由于enquete_vraag中有多行,我得到以下错误: 子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时 我需要的是显示enquete_vraag中的所有行 SELECT d.docent, v.vak, [Enq
[Enquete Vraag] =
(
SELECT enquete_vraag
FROM enquete_vraag
)
由于enquete_vraag中有多行,我得到以下错误:
子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时
我需要的是显示enquete_vraag中的所有行
SELECT d.docent,
v.vak,
[Enquete Vraag] = enquete_vraag,
[Totaal Aantal Studenten] =
(
SELECT COUNT(student_ID)
FROM student
LEFT JOIN klas
ON student.klas_ID = klas.klas_ID
INNER JOIN kdv
ON klas.klas_ID = kdv.klas_ID
INNER JOIN docent
ON kdv.docent_ID = docent.docent_ID
INNER JOIN vak
ON kdv.vak_ID = vak.vak_ID
WHERE docent.docent_ID = '1158'
AND vak.vak_ID = '449'
),
[Totaal Aantal Studenten Enquete Ingevuld] =
(
SELECT COUNT(enquete_antwoord_ID)
FROM enquete_antwoord
INNER JOIN kdv
ON enquete_antwoord.kdv_ID = kdv.kdv_ID
INNER JOIN vak
ON kdv.vak_ID = vak.vak_ID
INNER JOIN docent
ON kdv.docent_ID = docent.docent_ID
WHERE docent.docent_ID = '1158'
AND vak.vak_ID = '449'
),
[Gemiddelde Antwoord] =
(
SELECT AVG(enquete_antwoord_radio)
FROM enquete_antwoord
INNER JOIN KDV
ON enquete_antwoord.kdv_ID = kdv.kdv_ID
INNER JOIN vak
ON kdv.vak_ID = vak.vak_ID
INNER JOIN docent
ON kdv.docent_ID = docent.docent_ID
WHERE docent.docent_ID = '1158'
AND vak.vak_ID = '449'
)
FROM enquete_vraag ev
LEFT JOIN enquete_antwoord ea
ON ea.enquete_vraag_ID = ev.enquete_vraag_ID
LEFT JOIN kdv
ON ea.kdv_ID = kdv.kdv_ID
INNER JOIN klas k
ON kdv.klas_ID = k.klas_ID
INNER JOIN vak v
ON kdv.vak_ID = v.vak_ID
INNER JOIN docent d
ON kdv.docent_ID = d.docent_ID
LEFT JOIN student s
ON k.klas_ID = s.klas_ID
WHERE d.docent_ID = '1158'
AND v.vak_ID = '449'
GROUP BY v.vak, d.docent, ev.enquete_vraag;
通过此查询,我得到以下输出:
docent......... vak ................. vraag...........studenten......aantal...gemiddeld
Dhr,........... Linux praktijk....... QUESTION1...... 83............. 2........7
我真正需要的是:
docent......... vak ................. vraag...........studenten......aantal...gemiddeld
Dhr,............ Linux praktijk....... QUESTION2...... 83.............0.........0
我真的希望有人能帮助我,我整个上午都在为此而挣扎。
谢谢为什么在每个内部查询中都添加WHERE docent.docent_ID='1158'和vak.vak_ID='449',而它们已经包含在外部查询中。因为学生总数是5942,在子查询中它只返回该教师ID的学生??第2课id???请解释为什么您想要的结果显示问题2的一行,而这不在您现在得到的结果中。@Daan您需要将子查询中的多行组合成一个由空格分隔的字符串吗?@Joe,因为enquete_vraag中有两个问题。不,我不知道