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

问一SQL,该怎么解决

2012-01-24 
问一SQLTableAUserNoProductNoDirectorNoEndDate---------------------------------------------1132007-0

问一SQL
Table   A

UserNo       ProductNo     DirectorNo       EndDate
---------------------------------------------
1                           1                 3                         2007-01-08
1                           2                 2                         2007-05-08
2                           1                 1                         2007-08-09


SELECT   UserNo,   ProductNo,   MAX(EndDate)   FROM   [A]
GROUP   UserNo,   ProductNo

如果结果要多加一   DirectorNo   列,   DirectorNo的值等于   MAX(EndDate)   的   DirectorNo

怎么写??
谢谢

[解决办法]
select * from [A]
inner join
(SELECT UserNo, ProductNo, MAX(EndDate) EndDate FROM [A]
GROUP By UserNo, ProductNo) b

on a.UserNo=b.UserNo and a.ProductNo=b.ProductNo and a.EndDate =b.EndDate
[解决办法]
if object_id( 'pubs..tb ') is not null
drop table tb
go

create table tb(UserNo int,ProductNo int,DirectorNo int,EndDate datetime)
insert into tb(UserNo,ProductNo,DirectorNo,EndDate) values(1,1,3, '2007-01-08 ')
insert into tb(UserNo,ProductNo,DirectorNo,EndDate) values(1,2,2, '2007-05-08 ')
insert into tb(UserNo,ProductNo,DirectorNo,EndDate) values(2,1,1, '2007-08-09 ')

select a.* from tb a,
(SELECT UserNo, ProductNo, MAX(EndDate) as enddate FROM tb GROUP by UserNo, ProductNo) b
where a.UserNo = b.UserNo and a.ProductNo=b.ProductNo and a.EndDate = b.EndDate

drop table tb
/*
UserNo ProductNo DirectorNo EndDate
----------- ----------- ----------- -----------------------
2 1 1 2007-08-09 00:00:00.000
1 2 2 2007-05-08 00:00:00.000
1 1 3 2007-01-08 00:00:00.000
*/

热点排行
Bad Request.