我有一个表,如下: 编号 产量 销量 日期
A B C D
1 23 33 2008-9-2
2 22 35 2008-9-2
3 20 36 2008-9-2
4 25 33 2008-9-2
1 24 35 2008-9-3
2 24 36 2008-9-3
3 23 33 2008-9-3
4 23 36 2008-9-3
编号总共有1,2,3,4;四种,日期每天都在更新,一天一更新,我想要检索出最近日期的4个编号的相关数据,请问应该怎么写。
数据如上,我要检索出9月3号的4组数据的sql语句应该怎么写?
A B C D
1 23 33 2008-9-2
2 22 35 2008-9-2
3 20 36 2008-9-2
4 25 33 2008-9-2
1 24 35 2008-9-3
2 24 36 2008-9-3
3 23 33 2008-9-3
4 23 36 2008-9-3
编号总共有1,2,3,4;四种,日期每天都在更新,一天一更新,我想要检索出最近日期的4个编号的相关数据,请问应该怎么写。
数据如上,我要检索出9月3号的4组数据的sql语句应该怎么写?
解决方案 »
- 谁有使用jdbcTemplate实现分页的MVC实现
- 按10-30,30-50,50-70,70-90区段查询
- 建索引在oem中创建索引的窗口怎么建呢
- 帮忙看看这个Procedure速度的问题,高分!!!!
- 问一个Oracle异常,返回回来的异常类型问题!!!!!谢谢,在线等
- 如何通过判断当前时间来执行不同的SQL语句?
- 问高人存储过程每月执行一次,运用的是带参数的过程如何更改。特急!
- oracle初级问题:developer/2000的开发语言是pl/sql么?
- 急求大神帮忙:oracle事务提交,卡顿
- 在练习拉链表,传入字符型的时间后(2019-07-25),最后得出的结果只有前四位的年,如果把中间的横线-去掉的话,就能够正常,这是why??!
- 谁有关于securefiles优缺点的介绍或使用心得
- 请问一下这个SQL语句如何写呢?
select MAX(D) from test group by A)如果数据量大的话应该会很慢
WHERE A.D IN (SELECT MAX(D) FROM TEST B WHERE A.A = B.A GROUP BY B.A)
A B C D
1 23 33 2008-9-2
2 22 35 2008-9-2
3 20 36 2008-9-2
4 25 33 2008-9-2
1 24 35 2008-9-3
2 24 36 2008-9-3
3 23 33 2008-9-3
4 23 36 2008-9-3 select * from table_name
where (a,to_char(d,'yyyy-mm-dd')) in (select a,to_char(max(d),'yyyy-mm-dd') from table_name
group by a);虽然看起来比较麻烦,但是这个是取到每一个编号最新的数据
create table t_test
(
t_id int,
t_cnum int,
t_snum int,
t_time varchar(255)
)insert into t_test values(1,23,33,'2008-09-02');
insert into t_test values(2,22,35,'2008-09-02');
insert into t_test values(3,20,36,'2008-09-02');
insert into t_test values(4,25,33,'2008-09-02');
insert into t_test values(1,24,35,'2008-09-03');
insert into t_test values(2,24,36,'2008-09-03');
insert into t_test values(3,23,33,'2008-09-03');
insert into t_test values(4,23,36,'2008-09-03');
select * from t_test;select * from t_test
where (t_id,t_time) in (select t_id,max(t_time) from t_test
group by t_id); 验证了把楼上的,确实没问题!