我正在尝试编写PL/SQL,以了解如果您购买了一定数量的项目,您会支付多少费用。如果你购买3件物品,你可以免费得到1件。
因此,每购买第四件物品,其中一件是免费的。这意味着我支付3个项目,如果4个项目是“购买”。如果达到10个项目,那么8个应该支付,2个是免费的。
p-b v_p
*** ***
1 1 = 1
2 2 = 2
3 3 = 3
4 3(1) = 3
5 3(1) + 1 = 4
6 3(1) + 2 = 5
7 3(1) + 3 = 6
8 3(1) + 3(1) = 6
9 3(1) + 3(1) + 1 = 7
10 3(1) + 3(1) + 2 = 8
11 3(1) + 3(1) + 3 = 9
12 3(1) + 3(1) + 3(1) = 9我有
trunc(p-b / 3 * 2.4); 但我的价值观不一致。
有时它也适用于
trunc(p-b / 3 * 2.25); 我做的公式不对吗?我应该用警棍或者国防部。
发布于 2017-10-02 13:36:24
若要计算支付/免费物品的金额,请执行以下操作:
DECLARE
nAmount NUMBER := '10';
nPay NUMBER;
nFree NUMBER;
BEGIN
nPay := nAmount - TRUNC(nAmount / 4);
nFree := TRUNC(nAmount / 4);
DBMS_OUTPUT.PUT_LINE('Pay: ' || nPay);
DBMS_OUTPUT.PUT_LINE('Free: ' || nFree);
END;
/发布于 2017-10-02 08:07:26
发布于 2017-10-02 12:20:04
我们可以用下面的公式来达到这个结果。
假设n = p-b
n - ( n - mod( n, 4 ) ) / 4例:
SELECT n, n - (n - mod(n,4))/4 result
FROM (SELECT LEVEL n
FROM DUAL
CONNECT BY LEVEL <= 12)https://stackoverflow.com/questions/46521608
复制相似问题