有两张表分别如下:
表1:性能指标数据
时间 网元名称 小区 无线接入性 无线切换成功率
2015/6/7 15:30:00 aa 1 1 0
2015/6/7 15:30:00 aa 2 1 0
2015/6/7 15:30:00 aa 3 1 0
2015/6/7 15:31:00 aa 1 1 0
2015/6/7 15:31:00 aa 2 1 0
2015/6/7 15:31:00 aa 3 1 0
2015/6/7 15:40:00 aa 1 1 0
2015/6/7 15:40:00 aa 2 1 0
2015/6/7 15:40:00 aa 3 1 0
表2:告警
发生时间 恢复时间 网元名称
2015/6/7 15:30:00 2015/6/7 15:31:00 aa两表大致结构如上。现在我要实现的功能是:根据告警表,将性能指标数据表中的对应性能指标取出来(网元名称要对应上,时间也要对应上)。该怎么用SQL查询做出来呢?求各位大侠指教!在线等!急!!!
表1:性能指标数据
时间 网元名称 小区 无线接入性 无线切换成功率
2015/6/7 15:30:00 aa 1 1 0
2015/6/7 15:30:00 aa 2 1 0
2015/6/7 15:30:00 aa 3 1 0
2015/6/7 15:31:00 aa 1 1 0
2015/6/7 15:31:00 aa 2 1 0
2015/6/7 15:31:00 aa 3 1 0
2015/6/7 15:40:00 aa 1 1 0
2015/6/7 15:40:00 aa 2 1 0
2015/6/7 15:40:00 aa 3 1 0
表2:告警
发生时间 恢复时间 网元名称
2015/6/7 15:30:00 2015/6/7 15:31:00 aa两表大致结构如上。现在我要实现的功能是:根据告警表,将性能指标数据表中的对应性能指标取出来(网元名称要对应上,时间也要对应上)。该怎么用SQL查询做出来呢?求各位大侠指教!在线等!急!!!
select *
from 告警 t
left join 性能指标数据 a
on a.网元名称 = t.网元名称 and (a.时间=t.发生时间 or a.时间=t.恢复时间)
如果是要查询 在 发生时间 和 恢复时间,之间的 指标 ,可以这么写:select *
from 告警 t
left join 性能指标数据 a
on a.网元名称 = t.网元名称 and (a.时间 between t.发生时间 and a.时间=t.恢复时间)
上面那个有语法错误,改一下:select *
from 告警 t
left join 性能指标数据 a
on a.网元名称 = t.网元名称 and (a.时间 between t.发生时间 and t.恢复时间)