嗨我想知道是否有人知道如何计算tsql中两个表之间的差异。我不是说发现哪些细胞不同 - 我的意思是将数字差异加以计算。例如 - 表A有第1列,第2列,只有1行。 A1 = 40,B1 = 30.表B有第1列,第2列,只有1行。 A1 = 25,B1 = 10.那么我怎么能用TSQL得到(A1 = 15,B1 = 20)?
答案 0 :(得分:2)
鉴于您无法加入表格,您需要两者的笛卡尔积。幸运的是,因为每个表只有一个记录不是问题。
你这样做:
SELECT
TableA.A1 - TableB.A1 AS A1,
TableA.B1 - TableB.B1 AS B1
FROM TableA, TableB
如果每个表中有多个记录,则此查询将返回两个表中每对记录的结果。因此,如果TableA有n条记录且TableB有m,则结果将有n * m条记录。
答案 1 :(得分:1)
SELECT a.column1 - b.column1 , a.column2 - b.column2
FROM a
CROSS JOIN
b
答案 2 :(得分:1)
从我的脑海中解脱=)
Select
(CONVERT(int, T1.A1) - Convert(int, T2.A1)) as A1,
(CONVERT(int, T1.B1) - Convert(int, T2.B)) as B1
From Table1 T1
inner join Table2 T2 on T1.Key = T2.Key