@uuweZhou 日期用其它前端语言传参啊 如果是要在某个日期之前 就加个 where 如果没有参数 就传当前日期
billlee
2017-04-05 21:31:03 +08:00
SELECT * FROM t1 NATURAL JOIN (SELECT `学生`, `科目`, `年级`, MAX(`成绩日期`) AS `成绩日期` FROM t1 WHERE `成绩日期` < "2015-01-05" GROUP BY `学生`, `科目`, `年级` ORDER BY `学生` LIMIT 10)
select distinct 科目,年级,学生,'2015-01-05' as 成绩日期, first_value(成绩分数)over(partition by 科目,年级,学生 order by 成绩日期 desc) as 成绩分数 from 表 where 成绩日期 <= '2015-01-05' order by 学生
SELECT a.* FROM 成绩表 a where exists (select a.科目 from (SELECT 科目,年级,学生,MAX(成绩日期) 成绩日期 FROM 成绩表 WHERE 成绩日期 <= '2015-01-05' GROUP BY 科目,年级,学生) b WHERE a.科目 = b.科目 and a.年级 = b.年级 and a.学生 = b.学生 and a.成绩日期 = b.成绩日期);
shakoon
2017-04-06 09:19:03 +08:00
select * from table where (科目,年级,学生,成绩日期) = (select 科目,年级,学生,max(成绩日期) from table where 成绩日期 <= 查询的日期 group by 科目,年级,学生); --oracle 语法