我有一个在 Excel 中使用的现有查询,用于返回销售订单行及其相应的价目表、折扣等。
我需要扩展它以显示相应的批量折扣(如果适用)。我已将联接添加到我的查询中:
left join spp2 T7
on T7."CardCode" = T0."CardCode"
and T7."ItemCode" = T1."ItemCode"
and T7."Amount" < T1."Quantity"
这链接了订单标题和行表中的我的 BP 和
ItemCode
。从 SPP2 字段中选择 Amount
和 Price
字段,然后返回与 Spp2 表第三行匹配的所有行。
这意味着,例如,如果我有一个数量为 120 的销售订单行,则
SPP2
内的两次价格突破(例如 50 和 100)将返回 50 和 100 数量的行。我只想返回 100 行,因为这是销售订单价格中使用的行。
您可以使用窗口函数row_number()。将
row_number over ( partition by t7."CardCode", t7."ItemCode" order by t7."Amount" )row_num
添加到您的 select 子句中,并稍后根据 row_num = 1
进行过滤。
或者您可以在 where 子句中添加带有
not exists
的相关子查询,以过滤掉存在更接近 t1."Quantity" 的另一个 spp2 条目的所有 spp2 条目。