0

我对我的 SQL 查询有疑问。下面你会看到我的数据库:

我的数据库

我现在有以下查询:

SELECT enquete_vraag,enquete_antwoord,docent,vak,semesterstart
FROM ENQUETE_ANTWOORD
LEFT JOIN KDV ON ENQUETE_ANTWOORD.kdv_ID = KDV.kdv_ID
LEFT JOIN DOCENT ON KDV.docent_ID = DOCENT.docent_ID
LEFT JOIN VAK ON KDV.vak_ID = VAK.vak_ID
LEFT JOIN ENQUETE_VRAAG ON ENQUETE_ANTWOORD.enquete_vraag_ID = ENQUETE_VRAAG.enquete_vraag_ID
WHERE DOCENT.docent_ID = variableDocentID AND VAK.vak = variableVak

我在 a 中显示返回的数据datagridview

数据网格视图

现在datagridview显示所有学生正在回答的所有问题。我想要的是average每个问题的答案,并且只表明这一点。所以你有 1 行有问题 6 的平均答案和问题 7 的平均答案等等,我如何在我的 SQL 查询中实现这一点?

4

3 回答 3

2

嗨,你应该做这样的事情

SELECT enquete_vraag,AVG(enquete_antwoord) enquete_antwoord,docent,vak,semesterstart 
FROM ENQUETE_ANTWOORD 
LEFT JOIN KDV ON ENQUETE_ANTWOORD.kdv_ID = KDV.kdv_ID 
LEFT JOIN DOCENT ON KDV.docent_ID = DOCENT.docent_ID 
LEFT JOIN VAK ON KDV.vak_ID = VAK.vak_ID 
LEFT JOIN ENQUETE_VRAAG ON ENQUETE_ANTWOORD.enquete_vraag_ID = ENQUETE_VRAAG.enquete_vraag_ID 
WHERE DOCENT.docent_ID = variableDocentID AND VAK.vak = variableVak 
GROUP BY enquete_vraag, docent,vak,semesterstart 
于 2013-10-29T10:33:08.370 回答
1
SELECT enquete_vraag,AVG(enquete_antwoord) as [enquete_antwoord]
FROM ...
GROUP BY enquete_vraag

那么问题当然就变成vak了选择哪个等......由于翻译,我很难猜测哪个值意味着什么,所以很难就此提出建议。您也许可以在GROUP BY子句中包含额外的值(如果它们对于所有匹配的行都相同);或者你可以采取MIN/ MAX

于 2013-10-29T10:31:52.750 回答
0

只需在您的代码中添加 avg 函数。

...AVG(enquete_antwoord)...

写上面的代码它会给你正确的答案

于 2013-10-29T13:32:49.533 回答