我有一个问题,请高手给予指点一下:
有多张表,每张表里面都有一个相同字段为时间,其余字段为不同的信号值,不同表中的信号值没有重复的
如表1:
时间,信号1,信号2.。
表2:
时间,信号A,信号B。。
表3:
时间,信号一,信号二。
现在我想查询符合某一时间段条件的表1,表2,表3中的某些信号的值,
比如:查询2010-01-01到2010-01-02时间段的表1的信号2,表2的信号A和表3的信号一,信号二的值
我想要返回的结果集中数据排列如下:
时间,      信号2,   信号A,   信号一,   信号二
2010-01-01  10         27.6     2          678
而不是:
时间         信号值
2010-01-01   信号2的值(如10)
2010-01-01   信号A的值(如27.6)
2010-01-01   信号一的值(如2)
2010-01-01   信号二的值(如678)
请问这条查询语句应该怎么写?

解决方案 »

  1.   

    http://topic.csdn.net/u/20100305/09/e3524b45-9251-40fd-8639-17318f255709.html
      

  2.   

    step 1. union all相同的表
    step 2. 列转行(精华里面有很多)
      

  3.   

    select [时间],[信号2], NULL as [信号A],null as [信号一],null as [信号二]
    from tb1
    where [时间] between @bgntm and @endtmunion select [时间],null as [信号2], [信号A],null as [信号一],null as [信号二]
    from tb2
    where [时间] between @bgntm and @endtmunion select [时间],null as [信号2], null as [信号A],[信号一],[信号二]
    from tb3
    where [时间] between @bgntm and @endtm