如何计算两个不同数据表中不同列的百分比
跨数据表计算盈利/亏损百分比
核心逻辑
通过Item_id关联Table1和Table2,以Table1的Item_cost为成本价,Table2的Item_cost为售价,按以下规则计算百分比:
- 盈利时(售价≥成本价):显示
(售价/成本价)*100的结果加%,如120% - 亏损时(售价<成本价):显示
((售价-成本价)/成本价)*100的结果加%,如-50%
SQL实现示例(以MySQL为例)
SELECT t1.Item_id, t1.Item_cost AS 成本价, t2.Item_cost AS 售价, CONCAT( CASE WHEN t1.Item_cost = 0 THEN 'N/A' -- 规避除以0的异常 WHEN t2.Item_cost >= t1.Item_cost THEN ROUND((t2.Item_cost / t1.Item_cost) * 100, 2) ELSE ROUND(((t2.Item_cost - t1.Item_cost) / t1.Item_cost) * 100, 2) END, '%' ) AS 盈亏百分比 FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Item_id = t2.Item_id;
示例验证
假设Table1中Item_id=100的成本价为1000,Table2中对应商品的售价为500:
代入公式得((500-1000)/1000)*100 = -50%,符合亏损显示要求;
若售价为1200,计算得(1200/1000)*100 = 120%,符合盈利显示要求。
内容的提问来源于stack exchange,提问作者kishore
相关产品推荐
相关产品推荐

