【求助】一个包含MAX的查询怎么写

[复制链接]
查看11 | 回复4 | 2008-4-5 00:00:00 | 显示全部楼层 |阅读模式
执行下面的语句
create table abc
(merch varchar(4),
date smalldatetime,
value int)
insert abc values ('a','2007/1/2',2)
insert abc values ('a','2008/5/3',3)
insert abc values ('a','2006/6/6',4)
insert abc values ('b','2004/6/8',5)
insert abc values ('b','2002/6/7',6)
insert abc values ('b','2008/4/5',7)复制代码
我想查出这样的结果:
merch
date
value
b
2008-04-05 00:00:00
7
a
2008-05-03 00:00:00
3复制代码
我现在用这样的语句查询:
select a.* from abc a,(select merch,max(date)'date' from abc group by merch) b
where a.merch=b.merch and a.date=b.date复制代码
但觉得有点麻烦,请问还有没有更简练的语句?
回复

使用道具 举报

千问 | 2008-4-5 00:00:00 | 显示全部楼层
LZ的数据库版本是什么?
回复

使用道具 举报

千问 | 2008-4-5 00:00:00 | 显示全部楼层
回马鞍,MSSQL SERVER 2000 SP4
回复

使用道具 举报

千问 | 2008-4-5 00:00:00 | 显示全部楼层
select * from (select *from abc order by date desc) a
group by merch
order by value desc;
回复

使用道具 举报

千问 | 2008-4-5 00:00:00 | 显示全部楼层
原帖由 bailiu2002 于 2008-7-28 00:22 发表
select * from (select *from abc order by date desc) a
group by merch
order by value desc;

给出错误提示:
消息 1033,级别 15,状态 1,第 1 行
除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行