2012-10-31 38 views
-1

我有包括3個字段其表Machine NameProject NameDate Time 其中Date Time表示當機器被分配到一個項目的確切時間。查詢在SQL Server(機器,現在是在具體項目)

現在我想找到現在在特定項目中的機器(實際上可能是一臺機器在不同的時間被分配到不同的項目中)。

我想持續特定的項目是機器分配給它的最新項目。

回答

0

這聽起來像您可以使用此:

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 
+0

我想要的機器,現在是在特定的項目,可機「中」,2天前項目「 1「,現在在項目」2「中,當我在項目」1「中打棒機時,不應該加工」a「。 – Elina

+0

@ user1788354項目1現在有不同的機器與它關聯嗎? – Taryn