首先附上我写的代码:
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