Используйте subquery
вместо:
select tp.*
from Table_PO tp
where Date_PurchaseOrder = (select max(Date_PurchaseOrder)
from Table_PO tp1
where tp1.PO_Number = tp.PO_Number
);
Однако вы также можете использовать dense_rank()
функцию:
select *
from (select *, dense_rank() over (partition by PO_Number
order by Date_PurchaseOrder desc) as Seq
from Table_PO
) tp
where Seq = 1;
РЕДАКТИРОВАТЬ: Просто сделать заказ поDESC
SELECT *
FROM (SELECT *,
ROW_NUMBER() OVER (PARTITION BY PO_Number, PO_Value, Supplier
ORDER BY Date_PurchaseOrder DESC) AS Line_Count
FROM Table_PO
) AS T
Where Line_Count = 1;