首页 / MYSQL / 使用主键的多表的MYSQL总和
使用主键的多表的MYSQL总和
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用主键的多表的MYSQL总和,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3380字,纯文字阅读大概需要5分钟。
内容图文
MySQL对我来说还是一个新手,所以我很难找到这个特殊问题的答案.
我有大约60个供应商表,我想加入一个表.很多我们的供应商都带有相同的商品,所以我想将所有商品添加到一个表中,而那些具有相同sku的商品则将数量加在一起.我还想插入更高的成本和价格,并将其四舍五入到0.99,但如果它变得太复杂或者不能成功,我现在只会坚持使用sku和quanitity.我想从2个表开始,直到我能弄明白,然后一旦我掌握了解决方案,我就可以对所有这些表进行处理.这是2个表的示例:
Table A (SKU will be the primary key)
SKU Vendor A SKU Cost Price QTY
1000 VA100 49.99 62.99 10
1001 VA101 64.44 81.99 6
1002 VA102 37.67 47.99 24
1003 VA103 28.33 35.99 16
1004 VA104 26.33 35.99 18
Table B (SKU will be the primary key)
SKU Vendor B SKU Cost Price QTY
1000 VB100 49.99 62.95 21
1001 VB101 64.44 81.95 16
5001 VB501 32.67 40.95 4
5002 VB502 88.44 110.95 12
5003 VB503 87.21 109.95 2
所以最终结果将如下所示
SKU Vendor A SKU Vendor B SKU Cost Price QTY
1000 VA100 VB100 49.99 62.99 31 <-- Sum
1001 VA101 VB101 64.44 81.99 22 <-- Sum
1002 VA102 37.67 47.99 24
1003 VA103 28.33 35.99 16
1004 VA104 26.33 35.99 18
5001 VB501 32.67 40.95 4
5002 VB502 88.44 110.95 12
5003 VB503 87.21 109.95 2
正如您所看到的,前两个数量加在一起,以及插入的成本和价格中的更高.我尝试过各种变化:
Create Table MASTER
SELECT TableA.sku,TableA.VendorA_sku,TableA.cost,TableA.price,TableA.qty
UNION ALL
SELECT TableB.sku,TableB.VendorB_sku,TableB.cost,TableB.price,TableB.qty
GROUP BY sku
和变化:
Create Table MASTER
AS SELECT TableA.sku,TableA.VendorA_sku,TableA.cost,TableA.price,SUM(TableA.qty+TableB.qty)
GROUP BY sku
我尝试了很多不同类型的连接和工会,似乎无法看到我需要它的方式,也没有玩弄成本和价格的增加和舍入,因为我无法通过在重复的主键中添加quanitity.我必须每天做大约60张桌子和大约600k sku,所以任何帮助都会非常感激.(如果我没有正确输入这个,我也提前道歉,因为我是这些类型的论坛的新手)
解决方法:
以下内容对您有用:
select sku,
min(case when Type = 'VendorA' THEN Vendor END) VendorA_SKU,
min(case when Type = 'VendorB' THEN Vendor END) VendorB_SKU,
cost,
price,
sum(QTY) Total
from
(
select sku, VendorA_SKU Vendor, cost, price, qty, 'VendorA' Type
from tablea
union all
select sku, VendorB_SKU, cost, price, qty, 'VendorB' Type
from tableb
) x
group by sku
要确定一些事项,如果值不同或想要返回哪一个,您想要AVG()或MAX()的成本和价格吗?如果你这样做,你将使用以下命令返回MAX():
select sku,
min(case when Type = 'VendorA' THEN Vendor END) VendorA_SKU,
min(case when Type = 'VendorB' THEN Vendor END) VendorB_SKU,
max(cost) MaxCost,
max(price) MaxPrice,
sum(QTY) Total
from
(
select sku, VendorA_SKU Vendor, cost, price, qty, 'VendorA' Type
from tablea
union all
select sku, VendorB_SKU, cost, price, qty, 'VendorB' Type
from tableb
) x
group by sku
内容总结
以上是互联网集市为您收集整理的使用主键的多表的MYSQL总和全部内容,希望文章能够帮你解决使用主键的多表的MYSQL总和所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。