我需要一个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 |
|-----------------------------|
现在我需要返回一个包含以下数据的数组:
"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;
答案 0 :(得分: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