回 帖 发 新 帖 刷新版面

主题:关于日期的查询,菜鸟问题,有时间的就帮帮忙

A表:
| X | Y | Z |
| 1 | 0.8 | 2005-01-02 |
| 1 | 0.8 | 2006-01-02 |
| 1 | 0.9 | 2007-01-05 |
| 1 | 1.8 | 2007-01-09 |
| 2 | 0.7 | 2005-01-02 |
| 3 | 3.8 | 2007-01-02 |
| 3 | 3.9 | 2007-01-10 |
| 4 | 1.2 | 2005-01-02 |
| 4 | 1.3 | 2007-01-03 |
| 4 | 1.6 | 2007-01-04 |
| 5 | 2.5 | 2005-01-08 |
| 5 | 2.8 | 2006-01-09 |
| 5 | 3.9 | 2007-01-10 |
| 6 | 6.5 | 2007-02-02 |


写个查寻语句,调出日期最新的X的Y值
题目说的不是很清楚


总之要使得查询的结果如下表: 

| X | Y | Z |
| 1 | 1.8 | 2007-01-09 |
| 2 | 0.7 | 2005-01-02 |
| 3 | 3.9 | 2007-01-10 |
| 4 | 1.6 | 2007-01-04 |
| 5 | 3.9 | 2007-01-10 |
| 6 | 6.5 | 2007-02-02 |

不知道用什么函数,我用的是MS SQL。

回复列表 (共4个回复)

沙发

select x,max(y) y,max(z) z from a group by x

板凳

楼主,你说的要求和你给出的结果不一致

3 楼

我的理解是,按X分组,求时间最大的数据.

select a.* from tb a,
(select x , max(z) z from tb group by x) b
where a.x = b.x and a.z = b.z

4 楼

if object_id('pubs..tb') is not null
   drop table tb
go

create table tb(x int , y decimal(18,1) , z varchar(10))
insert into tb(x,y,z) values(1 , 0.8 , '2005-01-02')
insert into tb(x,y,z) values(1 , 0.8 , '2006-01-02')
insert into tb(x,y,z) values(1 , 0.9 , '2007-01-05')
insert into tb(x,y,z) values(1 , 1.8 , '2007-01-09')
insert into tb(x,y,z) values(2 , 0.7 , '2005-01-02')
insert into tb(x,y,z) values(3 , 3.8 , '2007-01-02')
insert into tb(x,y,z) values(3 , 3.9 , '2007-01-10')
insert into tb(x,y,z) values(4 , 1.2 , '2005-01-02')
insert into tb(x,y,z) values(4 , 1.3 , '2007-01-03')
insert into tb(x,y,z) values(4 , 1.6 , '2007-01-04')
insert into tb(x,y,z) values(5 , 2.5 , '2005-01-08')
insert into tb(x,y,z) values(5 , 2.8 , '2006-01-09')
insert into tb(x,y,z) values(5 , 3.9 , '2007-01-10')
insert into tb(x,y,z) values(6 , 6.5 , '2007-02-02')
go

select a.* from tb a,
(select x , max(z) z from tb group by x) b
where a.x = b.x and a.z = b.z
order by a.x

drop table tb

/*
x           y                    z          
----------- -------------------- ---------- 
1           1.8                  2007-01-09
2           .7                   2005-01-02
3           3.9                  2007-01-10
4           1.6                  2007-01-04
5           3.9                  2007-01-10
6           6.5                  2007-02-02

(所影响的行数为 6 行)

*/

我来回复

您尚未登录,请登录后再回复。点此登录或注册