我有一个表结构,如下所示。 每个工具都有一个家庭。每个工具都可以与几个家庭相关。每个家庭都可以拥有多种工具。
| Tool | Family | TPT |
--------------------------------------
| ToolA | FamilyA | TPT1 |
| ToolA | FamilyB | TPT2 |
| ToolA | FamilyC | TPT3 |
| ToolB | FamilyA | TPT4 |
| ToolB | FamilyB | TPT5 |
| ToolC | FamilyB | TPT6 |
| ToolD | FamilyD | TPT7 |
我想总结TPT列,如下面的结果所示 -
| Family | TPT |
------------------
| FamilyA | TPT2+TPT3+TPT5 |
| FamilyB | TPT1+TPT3+TPT4 |
| FamilyC | TPT1+TPT2 |
| FamilyD | 0 |
结果说明 - FamilyA有ToolA和ToolB。 ToolA与FamilyB(TPT2),FamilyC(TPT3)和FamilyA本身有关。 ToolB与FamiltyA本身和FamilyB(TPT5)有关。因此,FamilyA的TPT是TPT2 + TPT3 + TPT5。 FamilyB,FamilyC也是如此。 FamilyD只有ToolD。 ToolD与其他家庭无关。因此,FamilyD的TPT为0。 我如何编写一个sql查询,根据上面指定的表结构检索这些结果?
答案 0 :(得分:0)
希望它能为你效果,因为我没有测试过它:
el.setAttribute('look-controls', {enabled: false})
答案 1 :(得分:0)
这是另一个更精确的一个:
SELECT t1.family, coalesce(SUM(t2.tpt),0)
FROM t t1
LEFT JOIN t t2
ON t1.tool = t2.tool
AND t1.family <> t2.family
GROUP BY t1.family