0

我有以下两个表格。在 ONE query中,如何仅对表 2 中 FEATURE_ID 为 2 的那些 VEHICLE_ID 合计列 TOTAL_TIME?

因此,在我的情况下,查询的结果应该是 2:30,因为它将添加 2:00 和 0:30,因为这些车辆的 FEATURE_ID 为 2。

表 1
VEHICLE_ID | TOTAL_TIME
----------------+-----------------
       22 | 2:00
       25 | 2:30
       22 | 1:25
       28 | 0:30
       ......

表 2
VEHICLE_ID | FEATURE_ID
----------------+--------------------------------
       22 | 2
       22 | 3
       23 | 1
       23 | 3
       25 | 1
       28 | 2
       ........

4

2 回答 2

2

可以尝试类似:

SELECT SUM(t1.total_time) FROM table1 as t1 
INNER JOIN table2 as t2 ON t1.vehicle_id = t2.vehicle_id AND t2.feature_id = 2
于 2012-10-10T22:49:39.977 回答
2

SELECT SUM(TOTAL_TIME) FROM TABLE_1 WHERE VEHICLE_ID IN (SELECT VEHICLE_ID FROM TABLE_2 WHERE FEATURE_ID = 2)

您是否正在寻找 FEATURE_ID = 2 的总时间?或者您是否正在寻找按 VEHICLE_ID 分组的 FEATURE_ID = 2 的总总时间?那将是这样的:

SELECT T1.VEHICLE_ID, SUM(T1.TOTAL_TIME) 
FROM TABLE_1 T1
LEFT JOIN TABLE_2 T2 ON T2.VEHICLE_ID = T1.VEHICLE_ID AND T2.FEATURE_ID = 2
GROUP BY T1.VEHICLE_ID
ORDER BY T1.VEHICLE_ID
于 2012-10-10T22:50:34.327 回答