日期:2014-05-17  浏览次数:20479 次

一对多查询问题,大家帮个忙吧
稍微复杂一点的一对多查询,试了半天也没达成目标
希望各路大神帮忙解答

表数据如下
------------------------------------------------
ID   USER   ACCESS_PAGE   ACCESS_DATE_TIME   
1    A      PAGE-A        2013/10/01
2    A      PAGE-A        2013/10/02
3    A      PAGE-A        2013/10/03
4    A      PAGE-B        2013/10/01
5    A      PAGE-B        2013/10/02
6    B      PAGE-A        2013/10/03
7    C      PAGE-B        2013/10/05
8    D      PAGE-A        2013/10/01
9    D      PAGE-A        2013/10/09
10   D      PAGE-B        2013/10/11
-------------------------------------------------

上表是对用户访问页面的一个记录表
想求出PAGE-A和PAGE-B都访问了的用户的最新访问时间
并总结为一行数据

要求最后输出的结果如下
----------------------------------------
USER   ACCESS_PAGE_A_TIME   ACCESS_PAGE_B_TIME
A      2013/10/03           2013/10/02
D      2013/10/09           2013/10/11
-----------------------------------------

麻烦各位了,拜谢

------解决方案--------------------
----------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-10-17 16:16:52
-- Version:
--      Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
-- Dec 28 2012 20:23:12 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([ID] int,[USER] varchar(1),[ACCESS_PAGE] varchar(6),[ACCESS_DATE_TIME] datetime)
insert [huang]
select 1,'A','PAGE-A','2013/10/01' union all
select 2,'A','PAGE-A','2013/10/02' union all
select 3,'A','PAGE-A','2013/10/03' union all
select 4,'A','PAGE-B','2013/10/01' union all
select 5,'A','PAGE-B','2013/10/02' union all
select 6,'B','PAGE-A'