我的SQL服务器设置中有三个表。 其中两个表格如下:
Product Substitute
XXX ABC
YYY XYZ
表二与表一类似,但列出了替代品。
Product Alternate
XXX OPPP
YYY FTTT
我有一张主表,其中包含所有产品的数量(包括替换和替代品):
Product Quantity
XXX 52
YYY 84
ABC 180
XYZ 220
OPPP 590
FTTT 760
现在我需要一个SQL查询来列出每个主要部件号的可用部件总数。例如,输出查询应如下所示:
Product Quantity
XXX 822
YYY 1064
这是XXX的总金额= XXX总数+ ABC总数+ OPPP总数。
答案 0 :(得分:3)
您首先获得所需的所有数据(使用union all的内部查询)。
然后按产品分组整个数据集。
Select Product, Sum(Quantity)
From (
Select Product, Quantity From master
Union All
Select a.Product, m.Quantity From master as m
Inner join alternates as a on A.alternate = m.product
Union All
Select s.Product, m.Quantity From master as m
Inner join Substitute as s on s.Substitute = m.product
) as p
Group By Product