下午好, 我在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行返回,因为那是在SO的价格中使用的那一行。
我希望这一切都有道理。 提前致谢, 肯
答案 0 :(得分:0)
您可以使用窗口函数row_number()。将row_number over ( partition by t7."CardCode", t7."ItemCode" order by t7."Amount" )row_num
添加到您的select子句中,稍后过滤row_num = 1
。
或者您可以在where子句中添加一个带有not exists
的相关子查询,以过滤掉所有spp2条目,其中存在更接近t1的另一个spp2条目。“Quantity”。
如果您想获得更精确的答案,您应该添加一个Minimal,Complete和Verifiable示例
https://stackoverflow.com/help/mcve
Why should I provide an MCVE for what seems to me to be a very simple SQL query?