首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么查询最新的一条订货记录

2013-04-21 
如何查询最新的一条订货记录?表:ID客户订单时间地点1A2011-1-3上海2B2011-2-4北京3C2011-2-9天津4B2011-2-

如何查询最新的一条订货记录?
表:

ID     客户      订单时间        地点
1      A       2011-1-3       上海
2      B       2011-2-4       北京
3      C       2011-2-9       天津
4      B       2011-2-20      上海
5      C       2011-5-6       广州
6      A       2011-6-8       成都
7      A       2011-8-15      上海

想查询得到如下结果(每个客户的最新一条订单):
ID     客户      订单时间        地点
7      A       2011-8-15      上海
4      B       2011-2-20      上海
5      C       2011-5-6       广州

谢谢了
[解决办法]

----------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-04-14 17:26:14
-- Version:
--      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) 
--Jun 17 2011 00:57:23 
--Copyright (c) Microsoft Corporation
--Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([ID] int,[客户] varchar(1),[订单时间] datetime,[地点] varchar(4))
insert [huang]
select 1,'A','2011-1-3','上海' union all
select 2,'B','2011-2-4','北京' union all
select 3,'C','2011-2-9','天津' union all
select 4,'B','2011-2-20','上海' union all
select 5,'C','2011-5-6','广州' union all
select 6,'A','2011-6-8','成都' union all
select 7,'A','2011-8-15','上海'
--------------开始查询--------------------------
SELECT *
FROM [huang] a
WHERE EXISTS(SELECT 1 FROM (
select  [客户],MAX([订单时间])[订单时间]
from [huang]
GROUP BY [客户])b WHERE a.[客户]=b.[客户] AND a.[订单时间]=b.[订单时间])
ORDER BY [订单时间] DESC 
----------------结果----------------------------
/* 
ID          客户   订单时间                    地点
----------- ---- ----------------------- ----
7           A    2011-08-15 00:00:00.000 上海


5           C    2011-05-06 00:00:00.000 广州
4           B    2011-02-20 00:00:00.000 上海
*/

热点排行