有两张表分别如下:
表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.   


    select *
    from 告警 t
    left join 性能指标数据 a
           on a.网元名称 = t.网元名称 and (a.时间=t.发生时间 or a.时间=t.恢复时间)
      
      

  2.   


    如果是要查询 在 发生时间 和 恢复时间,之间的 指标 ,可以这么写:select *
    from 告警 t
    left join 性能指标数据 a
           on a.网元名称 = t.网元名称 and (a.时间 between t.发生时间 and a.时间=t.恢复时间)
      
      

  3.   

    Soga~要的就是在 发生时间 和 恢复时间之间的 指标。谢谢喽~
      

  4.   


    上面那个有语法错误,改一下:select *
    from 告警 t
    left join 性能指标数据 a
           on a.网元名称 = t.网元名称 and (a.时间 between t.发生时间 and t.恢复时间)