sql server中查询的最大日期

时间:2014-05-14 20:28:37

标签: sql-server

我需要帮助编写部分查询。这就是我所拥有的

create table first_table(empid [varchar] (10) primary key not null,
DateInserted Datetime)
insert into  first_table('1001','2012-02-13');
insert into  first_table('1002','2013-02-13');
insert into  first_table('1003','2014-02-11');
insert into  first_table('1004','2012-02-13');
insert into  first_table('2001','2012-02-12');
insert into  first_table('2002','2014-02-13');
insert into  first_table('5001','2014-02-13');

create table second_table(empid [varchar] (10) not null, CompanyID  [varchar] (10) not null)
insert into  second_table('1001','1');
insert into  second_table('1002','1');
insert into  second_table('1003','1');
insert into  second_table('1004','1');
insert into  second_table('2001','2');
insert into  second_table('2002','2');
insert into  second_table('5001','5');

create table valid_companies(CompanyID  [varchar] (10) not null)
insert into valid_companies('1');
insert into valid_companies('2');

我想从first_table中选择有效公司和最大日期的记录。 查询应该打印

1003,1,2014-02-11
2002,2,2014-02-13

我能够

select DateInserted,ni.empID
      ,CompanyID
       from 
      [dbo].[second_table] vw 
      inner join [dbo].[first_table] ni on ni.EmpID=vw.EmpID
 where TagValue in(
SELECT DISTINCT [CompanyID]
FROM [dbo].[Valid_Companies]
) 

。如何在此查询中包含max(DateInserted)

THX [R

1 个答案:

答案 0 :(得分:0)

试试这个

select e.empid, ec.CompanyID,
   Max(e.DateInserted) LatestDate
from second_table ec
   join first_table e
      on e.empid = ec.empid 
   join valid_companies v
      on v.CompanyID = ec.CompanyID  
group by e.empid, ec.CompanyID