----------------------------------------------------------------
-- Author  :DBA_HuangZJ(發糞塗牆)
-- Date    :2014-08-08 15:13:34
-- Version:
--      Microsoft SQL Server 2012 - 11.0.5058.0 (X64) 
-- May 14 2014 18:34:29 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据:[成员]
if object_id('[成员]') is not null drop table [成员]
go 
create table [成员]([成员编号] int,[班组名称] varchar(3),[成员名称] varchar(4),[成绩] int)
insert [成员]
select 1,'A组','张三',10 union all
select 2,'A组','李四',40 union all
select 3,'B组','王五',50 union all
select 4,'B组','刘一',80
--> 测试数据:[班组]
if object_id('[班组]') is not null drop table [班组]
go 
create table [班组]([班组编号] int,[班组名称] varchar(3))
insert [班组]
select 1,'A组' union all
select 2,'B组' union all
select 3,'C组'
--------------开始查询--------------------------select a.[班组名称],b.[成员名称],b.[成绩]
 from [班组] a LEFT JOIN (
SELECT *
FROM [成员] a
WHERE EXISTS (SELECT 1 FROM (
select [班组名称],MAX([成绩])[成绩]
from [成员]
GROUP BY [班组名称])b WHERE a.[班组名称]=b.[班组名称] AND a.[成绩]=b.[成绩]))b ON a.[班组名称]=b.[班组名称]
----------------结果----------------------------
/* 
班组名称 成员名称 成绩
---- ---- -----------
A组   李四   40
B组   刘一   80
C组   NULL NULL
*/