📜  门|门 IT 2005 |第 67 题

📅  最后修改于: 2021-09-24 06:36:13             🧑  作者: Mango

公司保留其销售人员的销售记录,并根据每个人一年的总销售额向他们支付佣金。此数据保存在具有以下架构的表中:
salesinfo = (salespersonid, totalsales, Commission)
某一年,由于经营业绩较好,公司决定进一步奖励销售人员,按以下公式提高支付给销售人员的佣金:
如果佣金 < = 50000,则提高 2%
如果 50000 < 佣金 < = 100000,则提高 4%
如果佣金 > 100000,则提高 6%
IT 人员编写了三个不同的 SQL 脚本来计算每个 Slab 的增强,这些脚本中的每一个都作为单独的事务运行,如下所示:
 T1
Update salesinfo
Set commission = commission * 1.02
Where commission < = 50000;

 

 T2
Update salesinfo
Set commission = commission * 1.04
Where commission > 50000 and commission is < = 100000;

 

 T3
Update salesinfo
Set commission = commission * 1.06
Where commission > 100000;

 

以下哪个选项运行这些交易会正确更新所有销售人员的佣金
(A)执行 T1 然后是 T2 然后是 T3
(B)执行T2,接着执行T3; T1 全程同时运行
(C)先执行T3,再执行T2; T1 全程同时运行
(D)依次执行 T3 之后是 T2 之后是 T1答案: (D)
说明: T3 后跟 T2 后跟 T1

如果不遵循此顺序,则可能会发生一个板块的官员两次受益。

说一个军官的佣金为 99,999,他必须根据 T2 获得更新的佣金。但是然后

99,999*1.04=1,03998,他再次有资格获得下一个佣金。

T3 后接 T2 后接 T1 将检查上述所有边界情况。所以答案是 D
这个问题的测验