SQL 接收行并执行其他查询

SQL receive row and execute other query

我需要一个 sql 函数来计算来自不同表的数据。

有两个表,

tbl_moving
|-----------------------------|
| start_datetime      | value |
|-----------------------------|
| 2016-10-05 10:00:00 |   23  |
| 2016-10-05 10:10:00 |   24  |
|-----------------------------|

tbl_execution
|-----------------------------|
| executed_datetime   | value |
|-----------------------------|
| 2016-10-05 10:05:00 | true  |
| 2016-10-05 10:16:00 | false |
|-----------------------------|

现在我需要 return 一个包含以下数据的数组:

"tbl_moving"."start_datetime", "tbl_moving"."value", "tbl_moving"."stop_datetime" (is the next start_datetime (10:10:00), "tbl_execution"."value" (where executed_datetime is between "tbl_moving"."start_datetime" and the next start_datetime (10:10:00)

我的问题是,我不知道如何接收查询结果

类似于

a = SELECT max(start_datetime) as start_datetime FROM "tbl_moving" WHERE value != 0 ORDER BY sig_datetime DESC GROUP BY start_datetime LIMIT 1;

你不需要一个函数,你可以用一个查询来完成:

select m.*, e.value
from (
  select m.start_datetime, 
         lead(m.start_datetime) over (order by m.start_datetime) as stop_datetime,
         m.value
  from tbl_moving m
) m 
   join tbl_execution e
     on e.start_datetime between m.start_datetime and m.stop_datetime