如何使用PXSelect语句以便检索特定DAC的Top(N)或第一个值。
假设我有一个带有序列号的表,我想获得序列号最大的记录。我怎么能这样做?
当然,出于性能原因,我希望SQL只发送1条记录。
答案 0 :(得分:3)
您可以使用SelectWindowed代替PXSelect
上的选择来获取前N个记录。在下面的示例中,它将获得前1名。如果您将totalRows
值1更改为5,它将获得前5名(除非您必须循环或让PXResultSet
使用全部5检索到的记录。)
前1名示例:
DiscountSequence firstRow = PXSelect<DiscountSequence,
Where<DiscountSequence.discountID, Equal<Required<DiscountSequence.discountID>>>
>.SelectWindowed(this, 0, 1, someDiscountID);
前5名示例:
foreach (DiscountSequence row in PXSelect<DiscountSequence,
Where<DiscountSequence.discountID, Equal<Required<DiscountSequence.discountID>>>
>.SelectWindowed(this, 0, 5, someDiscountID))
{
//5 rows returned
}