我需要一个新列,方法是从SQL Server的现有列中赋值.
我想要根据commission
个金额得到commission2
栏.
有客户可以包括1个或2个品牌和佣金金额.
Customerid | CountCustomer | Brand | commission | commission2 |
---|---|---|---|---|
1000 | 1 | B | -28 | 0 |
1001 | 2 | B | 12 | 12 |
1001 | 2 | F | 252 | 252 |
1002 | 1 | B | 62 | 62 |
1003 | 1 | B | 5 | 5 |
1004 | 1 | B | -61 | 0 |
1005 | 1 | F | 0 | 0 |
1006 | 1 | F | 32 | 32 |
1007 | 1 | F | 0 | 0 |
1008 | 1 | B | -496 | 0 |
1009 | 1 | F | 1 | 1 |
1010 | 1 | B | 1 | 1 |
1011 | 1 | B | 0 | 0 |
1012 | 1 | F | -10 | 0 |
1013 | 1 | B | 82 | 82 |
1014 | 1 | B | 54 | 54 |
1015 | 1 | B | 18 | 18 |
1016 | 1 | B | 0 | 0 |
1017 | 2 | B | 0 | 0 |
1017 | 2 | F | -21 | 0 |
1018 | 1 | B | 0 | 0 |
1019 | 1 | B | 5 | 5 |
1020 | 1 | B | -3 | 0 |
1021 | 1 | F | -1 | 0 |
1022 | 1 | B | 95 | 95 |
1023 | 1 | B | -20 | 0 |
1024 | 1 | B | 0 | 0 |
1025 | 2 | B | -65 | 10 |
1025 | 2 | F | 10 | 10 |
1026 | 2 | B | 24 | 24 |
1026 | 2 | F | -7 | 24 |
1027 | 2 | B | 0 | 0 |
1027 | 2 | F | 0 | 0 |
以下是规则:
-
如果是
CountCustomer = 1
,那就很容易了.如果是commission <= 0
,则commission2
是0,否则等于commission
-
如果
CountCustomer = 2
(表示客户使用两个品牌),并且佣金金额之一为>;0,另一个为<;0,则两个commission2
值都应为正数.如果这两个佣金数字都大于0,那么这些数字应该保持不变,为commission2
.如果两个佣金都是<;0,那么两个佣金的佣金2都应该是0.您可以从上表的粗体行中更清楚地了解.