2012-01-31 107 views
0

我有两个表我想比较。它们也位于不同的数据库和服务器中。我添加了一个链接的服务器,可以从服务器1内查询。来自不同表和数据库的总和和比较列

Server1上的表1提供了提交数据的细分。例如ref#123可能出现3次,值为100,150和200(总计为)。我想比较Server2上的Table2,它也有ref#123和总数,并返回正确的记录,如果总数不同于。

希望这是有道理的!感谢

+0

什么是 “返回正确的记录” 是什么意思? – gbn 2012-01-31 09:49:45

+0

可能是错误的 - 更像'不正确'的记录。即来自table2的返回记录,其中总数不等于来自table1的记录。 – ajguk 2012-01-31 10:04:11

回答

2
select * 
from 
(select col1, SUM(col2) 
from table1 
group by col1) t1 INNER JOIN 
(select col1, col2 
from table2) t2 ON t1.col1 = t2.col1 where t1.col2 <> t2.col2 

表1是表,其中参考号123可以出现多次。 COL2包含的值100150200 e.t.c

+0

我得到不正确的语法关键字 '其中' 附近: '从 选择* (\t选择submission_id,SUM([里程覆盖]) \t从tbl_weekly_expenses \t组由submission_id )点t1内连接 ( \t选择的子ID,和(英里) \t从server.database.dbo.tblExpensesMileage 由子ID \t组 )T 2,其中t1.submission_id> t2.subid' – ajguk 2012-01-31 10:16:11

+0

@ajguk它应该是ON。 – Zohaib 2012-01-31 10:19:50

+0

太好了,谢谢你这个......! – ajguk 2012-01-31 11:05:53

0
SELECT * 
FROM 
(
    SELECT 
     ref, 
     SUM(values) values 
    FROM Server1.YourDb1.YourSchema.TableBreakdowns 
) t1 
FULL JOIN Server2.YourDb1.YourSchema.TableTotals t2 
    ON t1.ref = t2.ref 
WHERE t1.values <> t2.values OR t1.ref is null OR t2.ref is null