我是 SQL 的新手,我有两个表,就像我的 PostgreSQL 数据库中的表一样:
表 1 - building_specs
+-----+---------+---------+--------+
| key | wallsId | floorId | roofId |
+-----+---------+---------+--------+
| 701 | 1 | 3 | 2 |
+-----+---------+---------+--------+
| 702 | 1 | 3 | 1 |
+-----+---------+---------+--------+
| 703 | 2 | 1 | 3 |
+-----+---------+---------+--------+
表 2 - spec_value
+-------+-------+-------+------+
| value | walls | floor | roof |
+-------+-------+-------+------+
| 1 | 4,8 | 5,4 | 3,6 |
+-------+-------+-------+------+
| 2 | 7,5 | 3,8 | 7,8 |
+-------+-------+-------+------+
| 3 | 3,6 | 10,1 | 4,1 |
+-------+-------+-------+------+
我需要根据spec_value计算building_specskey
中每个的最终值values
例如,final_value
对于表 1 中的第 701 行:
-> wallsId
= 1 -> 参考表 2 栏中的值4.8walls
-> floorId
= 3 -> 参考表 2 栏中的值10.1floor
-> roofId
= 2 -> 参考表 2 栏中的值7.8roof
final_value
然后,它应该对表 2中的所有参考值求和并获得22.7的 a
所以,我期望的回报是这样的:
+-----+-------------+
| key | final_value |
+-----+-------------+
| 701 | 22,7 |
+-----+-------------+
| 702 | 18,5 |
+-----+-------------+
| 703 | 17 |
+-----+-------------+
我怎样才能做到这一点?
如果我正确理解你的问题,你将需要类似
输出匹配问题中的 701 和 703,但 702 不同 (4.8 +10.1+3.6 != 12.2)