Sql 基于时间戳值获取作业的最新条目
我有一个场景如下:Sql 基于时间戳值获取作业的最新条目,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个场景如下: Message_No Date JobNo ABC_872 09-06-2015 19:57:12 Job1 ABC_873 09-06-2015 20:57:12 Job1 ABC_874 09-06-2015 21:57:12 Job2 ABC_875 09-06-2015 22:57
Message_No Date JobNo
ABC_872 09-06-2015 19:57:12 Job1
ABC_873 09-06-2015 20:57:12 Job1
ABC_874 09-06-2015 21:57:12 Job2
ABC_875 09-06-2015 22:57:12 Job2
我正试图展示这样的东西
Message_No Date JobNo
ABC_873 09-06-2015 20:57:12 Job1
ABC_875 09-06-2015 22:57:12 Job2
Message_No Date JobNo
ABC_872 09-06-2015 19:57:12 Job1
ABC_874 09-06-2015 21:57:12 Job2
i、 e每个作业的最新条目
我在where条款中尝试了以下条件
Message_No in (Select max(Message_No) from table group by jobno)
这给了我一个这样的结果
Message_No Date JobNo
ABC_873 09-06-2015 20:57:12 Job1
ABC_875 09-06-2015 22:57:12 Job2
Message_No Date JobNo
ABC_872 09-06-2015 19:57:12 Job1
ABC_874 09-06-2015 21:57:12 Job2
Message_NO是Varchar,Max函数的用法正确吗?我在Message number上使用Max,因为Message NO值随时间增加
请引导
我甚至使用了下面的查询,但ut给出了所有行
create view viewname as
Select
msg.no as MessageNum,
msg.jobno as JobNumber,
msg.timedate as MessageCreateTime
from allmessages as msg inner join
(
select no, max(timedate) as date1 from allmessages group by no
) as msg2 on msg.no=msg2.no and msg.timedate=msg2.date1
行编号将实现以下功能:
WITH Cte AS(
SELECT *,
RN = ROW_NUMBER() OVER(PARTITION BY JobNo ORDER BY [Date] DESC)
FROM tbl
)
SELECT *
FROM Cte
WHERE RN = 1
行编号将实现以下功能:
WITH Cte AS(
SELECT *,
RN = ROW_NUMBER() OVER(PARTITION BY JobNo ORDER BY [Date] DESC)
FROM tbl
)
SELECT *
FROM Cte
WHERE RN = 1
您好,我使用了下面的查询,它给出了所有的值,create view view name作为Select msg.no作为MessageNum,msg.jobno作为JobNumber,msg.timedate作为MessageCreateTime从allmessages作为msg内部连接选择no,maxtimedate作为date1从allmessages组中选择no作为msg2在msg上。no=msg2.no和msg.timedate=msg2.date1Hi,我使用了下面的查询,它给出了所有的值,create view view name作为Select msg.no作为MessageNum,msg.jobno作为JobNumber,msg.timedate作为MessageCreateTime从allmessages作为msg内部连接选择no,maxtimedate作为date1从allmessages组中选择no作为msg2在msg上。no=msg2.no和msg.timedate=msg2.date1