0
組
內的最大值實體的選擇ID我有這樣的小實體HQL與
class Order
{
public long Id;
public DateTime Date;
public long ProductId;
}
我要選擇具有由ProductId
分組的訂單中MAX(Date)
實體Id
。 對(MAX(Date)
,ProductId
)不是唯一的所以這個查詢是錯誤的:
select o.Id
from Order o
where o.Date =
(select max(o2.Date)
from Order o2
where o2.ProductId = o.ProductId);
你有什麼想法?
基本上我想要的是從集團獲得最近的訂單,所以如果我認爲更大的Id
==新Order
這樣的:
select o
from Order o
where o.Id in
(select max(o2.Id)
from Order o2
group by o2.ProductId);
會爲我工作。有沒有更好的解決方案?
它並非總是如此,如果某人更改/更新訂單日期,那麼您的查詢將不會返回正確的結果。 –
100%正確;-)因此,我要求更好的解決方案 – Mixer