我有一个Oracle 10g数据库有两个表:一个REBATES表和一个ORDERS表。比较两个表之间的值范围
回扣表看起来有点像这样:
| rebate_percentage | min_purchase |
------------------------------------
| 1.0 | 5000 |
| 1.5 | 7000 |
| 2.0 | 11000 |
| 5.0 | 20000 |
我试图确定的回扣比例应用,基于总订单。我知道如何在特定时间范围内找到特定客户的所有订单的总和,但我怎样才能在一个查询中获得回扣百分比?
例如,如果订单总数为16,000,那么我如何构建一个接受此值的查询,将它与REBATES表进行比较,并返回2.0?
您可能需要添加逻辑来处理max_purchase NULL值(不是100 %肯定铅()返回最后一行,我假设NULL) –
@戈登Linoff:还有一件事,如果我加入订单表,那么只有那些记录填充谁的价值下注在最小和最大购买范围内。如果订单价值低于最低购买价格,那么其回扣应为0。 –
@戈登:请更正您的解决方案:'或rebates.max_purchase为空'不是'totalorders为空'+1为您的解决方案:) –