SQL计算单元格值之间的差异

时间:2009-07-09 12:30:40

标签: sql sql-server tsql

嗨我想知道是否有人知道如何计算tsql中两个表之间的差异。我不是说发现哪些细胞不同 - 我的意思是将数字差异加以计算。例如 - 表A有第1列,第2列,只有1行。 A1 = 40,B1 = 30.表B有第1列,第2列,只有1行。 A1 = 25,B1 = 10.那么我怎么能用TSQL得到(A1 = 15,B1 = 20)?

3 个答案:

答案 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