【发布时间】:2010-10-06 10:00:00
【问题描述】:
我有两个 SQL 查询要合并为一个。第一个选择我需要在第二个中添加的所有行的 ID:
SELECT t.mp_id FROM t_mp AS t
JOIN t_mp_og USING (mp_id)
WHERE og_id = 2928
AND t.description = 'Energy'
第二个应该将第一个查询返回的行中的值相加。到目前为止,我只能在它们之间添加几个带有 + 的选择。对于添加查询一返回的所有行的动态查询,我想做与“foreach(value from query1){ sum += value }”等效的操作并返回该总和。
SELECT(
(SELECT current_value FROM t_value_time WHERE mp_id = 29280001 AND time_id =
(SELECT time_id FROM t_time WHERE time_stamp =
(SELECT max(time_stamp) FROM v_value AS v WHERE time_stamp is not null AND mp_id = 29280001)))
+
(SELECT current_value FROM t_value_time WHERE mp_id = 29280015 AND time_id =
(SELECT time_id FROM t_time WHERE time_stamp =
(SELECT max(time_stamp) FROM v_value AS v WHERE time_stamp is not null AND mp_id = 29280015)))
+
(SELECT current_value FROM t_value_time WHERE mp_id = 29280022 AND time_id =
(SELECT time_id FROM t_time WHERE time_stamp =
(SELECT max(time_stamp) FROM v_value AS v WHERE time_stamp is not null AND mp_id = 29280022)))
);
我的两个问题:我不知道如何将所有行添加到集合中,只能手动添加“+”方式。我也不知道如何将行中的 ID 放入获取值的 SELECT 中。我试过 AS,但它似乎只适用于表,而不是单个值。
感谢您的帮助, B先生
【问题讨论】: