我有两张桌子。 One(Widgets)有一个小部件列表(ID,widget_name,颜色等等)和有关它们的数据。 另一个(测试)有一个在小部件上运行的测试列表(ID,日期,信息1,信息2等)。
我想要做的是显示最近的两个测试。我不认为我真的需要使用表格小部件,但我描述它,所以你会知道我来自哪里。
我构建了一个使用MAX()函数的“Totals”查询,并为每个ID显示单个最新日期。然后,我可以使用此查询构建另一个查询,该查询显示有关该窗口小部件在该日期发生的测试的有用信息。我真正需要的是,每个小部件都有最近两个测试日期。
答案 0 :(得分:2)
如果您需要最近的两个测试,那么
Select * From Tests T
Where (Select Count(*) From tests
Where testDate > T.TestDate) < 2
如果您需要为每个Widget进行两次最新测试,那么
Select * From Tests T
Where (Select Count(*) From tests
Where WidgetId = T.WidgetId
And testDate > T.TestDate) < 2
答案 1 :(得分:0)
(假设同一小部件的所有日期都是唯一的)
select T.*
from Widget W
join Test T on T.widget_id = W.id
where T.date >= (
select max(T2.date)
from Test T2
where T2.widget_id = W.id
and T2.date < (
select max(T3.date)
from Test T3
where T3.widget_id = W.id
)
)
or T.date == (
select max(T2.date)
from Test T2
where T2.widget_id = W.id
)