我对SQL很陌生,我不知道如何开始使用这个。 我有两张表:仓库和物品。下面是它们的样子(简化):按部分值分组
仓库
ItemID | QuantityInStock | QuantityOnOrder | QuantityOnOrder2 | QuantityOnOrder3 | QuantityOnOrder4
-------+-----------------+-----------------+------------------+------------------+-----------------
1111 | 8 | 1 | 0 | 1 | 0
2222 | 3 | 0 | 0 | 0 | 0
3333 | 4 | 0 | 1 | 0 | 0
项目
ItemID | Code
-------+-----------------
1111 | abc123456-111-01
2222 | abc123456-111-02
3333 | abc123457-112-01
我需要通过SQL查询返回的是:
ShortCode | Quantity
----------+---------
abc123456 | 9
abc123457 | 3
- ItemID是加入两个表的关键
- Items表中的代码包含主要产品代码(abc123456)和变体(-111-01)。我需要按主产品代码对行进行分组
- 我需要的数量来自仓库表,它等于“QuantityInStock - QuantityOnOrder - QuantityOnOrder2 - QuantityOnOrder3 - QuantityOnOrder4”。使用这个我们得到了abc123456(在ItemId 1111和2222的Items表中有两个变体),并且Quantity对于1111是等于8减1减去0减1减0,对于2222是3减0减0减0,它们一起给出9
这可能是有史以来最糟糕的解释,所以我希望有人能够理解它。
请帮忙。
最小量为主要产品的代码始终在相同的模式,你可以始终保证你只需要匹配前9个左边的字符? – Kane
是的。我很抱歉,我应该提到这一点。它将始终是9个字符。我猜你在想LEFT(Code,9)? – Max