当前位置: 代码迷 >> Sql Server >> 问一个SQL两个服务器之间的联合查询有关问题
  详细解决方案

问一个SQL两个服务器之间的联合查询有关问题

热度:49   发布时间:2016-04-24 09:19:11.0
问一个SQL两个服务器之间的联合查询问题
首先附上我写的代码:
select * from [10.30.203.244].netsupport.dbo.logtable   
where logtime between '2015-3-11 11:00:00'and'2015-3-11 13:00:00'and logid like 'I%' 
UNION  ALL
SELECT  * FROM   logtable  
WHERE   Logid IN ( SELECT Logid
                 FROM   logtable
                 WHERE  logtime BETWEEN '2015-3-11 11:00:00'
                                AND     '2015-3-11 13:00:00'
                 GROUP BY Logid
                 HAVING COUNT(*) = 1 )and logtime BETWEEN '2015-3-11 11:00:00'
                                AND     '2015-3-11 13:00:00' and logid like 'I%'
ORDER BY logname ,logtime


内容是将我当前数据库内查询的数据和10.30.203.244查询的数据组合。
现在想要只把10.30.203.244中查询和我现在表中查询的有相同的数据合过来,按照[10.30.203.244]中logtable表内logid和当前查询的logid有相同的添加过来,其他的不要
------解决思路----------------------
不明白,是两边的数据,全部相同的那部分数据,只取一部分?
是的话,直接把UNION ALL 改成UNION
------解决思路----------------------

select * from [10.30.203.244].netsupport.dbo.logtable   
where logtime between '2015-3-11 11:00:00'and'2015-3-11 13:00:00'and logid like 'I%' 
UNION 
SELECT  * FROM   logtable  
WHERE   Logid IN ( SELECT Logid
                 FROM   logtable
                 WHERE  logtime BETWEEN '2015-3-11 11:00:00'
                                AND     '2015-3-11 13:00:00'
                 GROUP BY Logid
                 HAVING COUNT(*) = 1 )and logtime BETWEEN '2015-3-11 11:00:00'
                                AND     '2015-3-11 13:00:00' and logid like 'I%'
ORDER BY logname ,logtime



select distinct * from (
select * from [10.30.203.244].netsupport.dbo.logtable   
where logtime between '2015-3-11 11:00:00'and'2015-3-11 13:00:00'and logid like 'I%' 
UNION  ALL
SELECT  * FROM   logtable  
WHERE   Logid IN ( SELECT Logid
                 FROM   logtable
                 WHERE  logtime BETWEEN '2015-3-11 11:00:00'
                                AND     '2015-3-11 13:00:00'
                 GROUP BY Logid
                 HAVING COUNT(*) = 1 )and logtime BETWEEN '2015-3-11 11:00:00'
                                AND     '2015-3-11 13:00:00' and logid like 'I%'
ORDER BY logname ,logtime) t

  相关解决方案