Sql 如何从子查询中获取多行?

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]=Enquete_Vraag,我试图将其作为子查询:

[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中有两个问题。不,我不知道