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 高手帮看下。随便说下多表查询带聚合和条件的语法。谢谢。 展开
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 高手帮看下。随便说下多表查询带聚合和条件的语法。谢谢。 展开
展开全部
如果你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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询