MySQL 对我来说仍然很新,所以我很难找到这个特定问题的答案。
我有大约 60 个供应商表,我想将它们加入到一张表中。我们的很多供应商都携带相同的物品,所以我想将所有物品添加到一张桌子上,而那些具有相同 sku 的供应商将数量加在一起。我还想插入更大的成本和价格,并将其四舍五入到 0.99,但如果它变得太复杂或无法实现,我现在将坚持只使用 sku 和数量。我想从 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
如您所见,前 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
我尝试了许多不同类型的联接和联合,但似乎无法得到任何符合我需要的东西,我也没有玩弄成本和价格的增加和四舍五入,因为我无法过去在重复的主键中添加数量。我必须每天使用大约 60 张桌子和大约 600k sku 进行此操作,因此将不胜感激任何帮助。
(如果我没有正确输入,我也提前道歉,因为我是这些类型的论坛的新手)