、 の 3 つのフィールドを含むテーブルがあります。
ここではMachine Name
、マシンがプロジェクトに割り当てられた正確な時間を示します。Project Name
Date Time
Date Time
ここで、現在特定のプロジェクトにあるマシンを検索したいと考えています (実際には、1 台のマシンが別の時間に別のプロジェクトに割り当てられている可能性があります)。
特定のプロジェクトを、マシンが割り当てた最新のプロジェクトにしたい。
、 の 3 つのフィールドを含むテーブルがあります。
ここではMachine Name
、マシンがプロジェクトに割り当てられた正確な時間を示します。Project Name
Date Time
Date Time
ここで、現在特定のプロジェクトにあるマシンを検索したいと考えています (実際には、1 台のマシンが別の時間に別のプロジェクトに割り当てられている可能性があります)。
特定のプロジェクトを、マシンが割り当てた最新のプロジェクトにしたい。
これを使用できるようです:
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