我使用此SQL查询从访问数据库中获取数据
SELECT Absence.date_, stages.name, course.course_name, student.name AS st_name
FROM (((Absence INNER JOIN course ON Absence.course_id = course.ID)
INNER JOIN stages ON course.id_stage = stages.ID)
INNER JOIN student ON Absence.student_id = student.ID AND stages.ID = student.stage_id`
当我不打算对字段进行分组或获取字段数时,它会向我显示此错误消息
尝试执行不包含指定的查询 表达' Absence.date _'作为聚合函数的一部分
如何获取行数,将其与st_name区分开来,以及按阶段名称或课程名称
分组答案 0 :(得分:1)
要获得计数,您应该使用
SELECT Absence.date_, stages.name, course.course_name, student.name AS st_name, count(*)
FROM (((Absence INNER JOIN course ON Absence.course_id = course.ID)
INNER JOIN stages ON course.id_stage = stages.ID)
INNER JOIN student ON Absence.student_id = student.ID AND stages.ID = student.stage_id
GROUP BY Absence.date_, stages.name, course.course_name, student.name
答案 1 :(得分:-1)
哪个表包含“Absence.date_”字段? 而且您不需要指定“内部”(或者就此而言是自然的)。
使用聚合函数(Count(),Sum(),ect)时,group by必须包含与select语句相同的字段列表。并且该错误表明Absence.date_不作为from子句中任何表中的字段存在。但是,您的查询中没有Group By语句。