Sql server SQL Server中的查询(现在位于特定项目中的计算机)
我有一个包含3个字段的表,分别是Sql server SQL Server中的查询(现在位于特定项目中的计算机),sql-server,Sql Server,我有一个包含3个字段的表,分别是机器名称,项目名称,日期时间 其中,日期时间表示机器分配给项目的确切时间 现在我想找到现在在一个特定项目中的机器(事实上,可能是一台机器在不同的时间被分配到不同的项目) 我希望持续的特定项目是机器分配给它的最新项目。听起来您可以使用以下内容: select t1.ProjectName, t2.Datetime, t2.MachineName from yourtable t1 left join ( select max(datetime) Date
机器名称
,项目名称
,日期时间
其中,日期时间
表示机器分配给项目的确切时间
现在我想找到现在在一个特定项目中的机器(事实上,可能是一台机器在不同的时间被分配到不同的项目)
我希望持续的特定项目是机器分配给它的最新项目。听起来您可以使用以下内容:
select t1.ProjectName,
t2.Datetime,
t2.MachineName
from yourtable t1
left join
(
select max(datetime) DateTime, MachineName
from yourtable
group by MachineName
) t2
on t1.machinename = t2.machinename
and t1.datetime = t2.datetime
甚至:
select projectname, datetime, machinename
from
(
select projectname,
datetime,
machinename,
row_number() over(partition by machinename order by datetime desc) rn
from yourtable
) src
where rn = 1
我希望现在在特定项目中的机器,可能是机器“a”,2天前在项目“1”中,现在在项目“2”中,当我在项目“1”中创建机器时,机器“a”不应该出现在结果中。@user1788354项目1现在会有一个与之关联的不同机器吗?