在 NetSuite 保存的搜索中确定 kits/assemblies(销售价格/(数量总和 * member_cost)的利润系数(或百分比)
Determine profit factor (or percent) for kits/assemblies (sales price/(sum of qty * member_cost) in NetSuite saved search
在 NetSuite 中,我有一个包含 2 个成员项目的工具包。在保存的搜索中,我需要将基本价格除以套件组件的总和。
所以套件的价格是 10 美元
compA 为 0.50,数量为 2
compB 是 $1 和 qyt 1
我的利润系数是 10/((.5*2)+1*1))=5。所以我的利润是成本的 5 倍。我有保存的搜索,它给我分母,它是 NVL({memberitem.averagecost},{memberitem.cost})*{memberquantity}
我寻找平均成本,如果 none,我使用成本乘以会员数量。然后我可以用汇总函数对其进行求和,但是我如何将其除以我的基本价格,因为基本价格需要分组或平均,但成本是相加的。
首先,calculation/terminology 只是一个小问题。在您给出的示例 (10/2=5) 中,表明您的 销售额 价值是成本的 5 倍,而不是利润。您的利润将是成本的 (10-2)/2=4 倍。这类似于混淆边距和标记的常见错误。
要回答您的问题:您需要将其设为按项目分组的摘要搜索。因此项目名称或 ID 可以具有摘要类型组。要获得您尝试进行的计算,您需要选择最小汇总类型,并在公式中包含实际汇总:
min({price}) / sum(NVL({memberitem.averagecost},{memberitem.cost}) * {memberquantity})
要获得保证金,请执行相同的步骤,但使用以下公式:
(min({price}) - sum(NVL({memberitem.averagecost},{memberitem.cost}) * {memberquantity})) / min({price})
最后,对于标记:
(min({price}) - sum(NVL({memberitem.averagecost},{memberitem.cost}) * {memberquantity})) / sum(NVL({memberitem.averagecost},{memberitem.cost}) * {memberquantity})
以@氪为起点,这里是NetSuite的最终公式
( (min/* comment */{price} OVER(PARTITION BY {name} ORDER BY {name}))-(CASE WHEN {type}='Inventory Item' THEN (sum/* comment */(NVL({averagecost},{cost})) OVER(PARTITION BY {name} ORDER BY {name})) ELSE (sum/* comment */(NVL({memberitem.averagecost},{memberitem.cost})*{memberquantity}) OVER(PARTITION BY {name} ORDER BY {name})) END))/(CASE WHEN {type}='Inventory Item' THEN (sum/* comment */(NVL({averagecost},{cost})) OVER(PARTITION BY {name} ORDER BY {name})) ELSE (sum/* comment */(NVL({memberitem.averagecost},{memberitem.cost})*{memberquantity}) OVER(PARTITION BY {name} ORDER BY {name})) END)
在 NetSuite 中,我有一个包含 2 个成员项目的工具包。在保存的搜索中,我需要将基本价格除以套件组件的总和。
所以套件的价格是 10 美元 compA 为 0.50,数量为 2 compB 是 $1 和 qyt 1
我的利润系数是 10/((.5*2)+1*1))=5。所以我的利润是成本的 5 倍。我有保存的搜索,它给我分母,它是 NVL({memberitem.averagecost},{memberitem.cost})*{memberquantity}
我寻找平均成本,如果 none,我使用成本乘以会员数量。然后我可以用汇总函数对其进行求和,但是我如何将其除以我的基本价格,因为基本价格需要分组或平均,但成本是相加的。
首先,calculation/terminology 只是一个小问题。在您给出的示例 (10/2=5) 中,表明您的 销售额 价值是成本的 5 倍,而不是利润。您的利润将是成本的 (10-2)/2=4 倍。这类似于混淆边距和标记的常见错误。
要回答您的问题:您需要将其设为按项目分组的摘要搜索。因此项目名称或 ID 可以具有摘要类型组。要获得您尝试进行的计算,您需要选择最小汇总类型,并在公式中包含实际汇总:
min({price}) / sum(NVL({memberitem.averagecost},{memberitem.cost}) * {memberquantity})
要获得保证金,请执行相同的步骤,但使用以下公式:
(min({price}) - sum(NVL({memberitem.averagecost},{memberitem.cost}) * {memberquantity})) / min({price})
最后,对于标记:
(min({price}) - sum(NVL({memberitem.averagecost},{memberitem.cost}) * {memberquantity})) / sum(NVL({memberitem.averagecost},{memberitem.cost}) * {memberquantity})
以@氪为起点,这里是NetSuite的最终公式
( (min/* comment */{price} OVER(PARTITION BY {name} ORDER BY {name}))-(CASE WHEN {type}='Inventory Item' THEN (sum/* comment */(NVL({averagecost},{cost})) OVER(PARTITION BY {name} ORDER BY {name})) ELSE (sum/* comment */(NVL({memberitem.averagecost},{memberitem.cost})*{memberquantity}) OVER(PARTITION BY {name} ORDER BY {name})) END))/(CASE WHEN {type}='Inventory Item' THEN (sum/* comment */(NVL({averagecost},{cost})) OVER(PARTITION BY {name} ORDER BY {name})) ELSE (sum/* comment */(NVL({memberitem.averagecost},{memberitem.cost})*{memberquantity}) OVER(PARTITION BY {name} ORDER BY {name})) END)