【问题标题】:Mysql - Multiplicate two cols and subtract the differenceMysql - 将两列相乘并减去差异
【发布时间】:2018-02-25 15:22:19
【问题描述】:

我在一张这样的表中有一个数据库结构。 Id、product_id、in_out、prod_size、prod_amount和一些示例数据:

1 | 2 | IN | 4 | 2
2 | 2 | UT | 4 | 1
3 | 3 | IN | 3 | 5

现在我想将 prod_sizeprod_amount 相乘,得到按 product_id 分组的 IN 和 UT 帖子之间的差异。 我有一个开始,但它算不上正确。

SELECT sk1.product_id 'product_id',
(sk2.prod_size*sk2.prod_amount)-(sk1.prod_size*sk1.prod_amount) as availability
FROM tbl sk1
LEFT JOIN tbl sk2 ON sk1.product_id=sk2.product_id
WHERE sk1.in_out='UT' AND sk2.in_out = 'IN'
GROUP BY sk1.product_id

所以这个表中的预期结果应该是:

2 | 4
3 | 15

【问题讨论】:

  • 当我看到一个 group by 我希望看到聚合函数。比如总和。

标签: mysql grouping multiplication


【解决方案1】:

你不需要加入它自己。

select   product_id,
         sum((prod_size * prod_amount) * if(in_out = 'IN', 1, -1)) total
from     tbl
group by product_id
产品编号 |全部的 ---------: | ----: 2 | 4 3 | 15

dbfiddle here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多