SQL高手来,SQL多表两条件聚合查询

我语法不对哈,Selectyear.pk_year_idyear.year_nameyear.year_timeexam.pk_exam_idexam.exam_name... 我语法不对哈,
Select
year.pk_year_id
year.year_name
year.year_time
exam.pk_exam_id
exam.exam_name
exam.exam_time
exam.fk_year_id
INNER JOIN year.pk_year_id = exam.fk_year_id
WHERE MAX(year.pk_year_id) AND exam.exam_time(最晚的时间放上面)

所以自己用了中文的。

SELECT MAX(dbo.学期表.学期id),
dbo.学期表.[学年],
dbo.学期表.[学期],
dbo.考试表.[主键_考试ID],
dbo.考试表.[考试名称],
dbo.考试表.[考试时间],
dbo.考试表.[学期id]
FROM dbo.学期表,dbo.考试表
WHERE dbo.学期表.学期id = 考试表.[学期id] ORDER BY dbo.考试表.[考试时间] desc

命令完成。但是

啥啥,在选中列中无效。因为该列未包含在聚合函数中,并且没有GROUP BY子句。

请SQL 高手帮看下。随便说下多表查询带聚合和条件的语法。谢谢。
展开
 我来答
dyxg041
2009-03-09 · TA获得超过1035个赞
知道小有建树答主
回答量:1067
采纳率:0%
帮助的人:970万
展开全部
如果你select语句用到统计函数如sum()、max()z则需要group by 分组,所有没有函数过的字段都需要列到group by 后面,如下面sql就可执行了
SELECT MAX(dbo.学期表.学期id),
dbo.学期表.[学年],
dbo.学期表.[学期],
dbo.考试表.[主键_考试ID],
dbo.考试表.[考试名称],
dbo.考试表.[考试时间],
dbo.考试表.[学期id]
FROM dbo.学期表,dbo.考试表
WHERE dbo.学期表.学期id = 考试表.[学期id]
group by
dbo.学期表.[学年],
dbo.学期表.[学期],
dbo.考试表.[主键_考试ID],
dbo.考试表.[考试名称],
dbo.考试表.[考试时间],
dbo.考试表.[学期id]
ORDER BY dbo.考试表.[考试时间] desc
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式