Sql server 两个表的3个值之间的差异

Sql server 两个表的3个值之间的差异,sql-server,comparison,Sql Server,Comparison,我有两张像这样的桌子 id att1 att2 1 34 56 2 45 12 3 34 11 id att1 att2 1 14 10 2 25 2 3 14 10 如何获得3个值之间的差值,如 id att1 att2 1-1=0 34-14=20 56-10=46 2-2=0 45-25=20 12-2 =10 3-3=0 34-14=20 11-10=1 SELECT A.id

我有两张像这样的桌子

id  att1 att2
1   34    56
2   45    12
3   34    11


id  att1 att2
1   14    10
2   25    2
3   14    10
如何获得3个值之间的差值,如

id      att1      att2
1-1=0  34-14=20  56-10=46
2-2=0  45-25=20  12-2 =10  
3-3=0  34-14=20  11-10=1 


SELECT A.id-B.id, A.att1-B.att1,A.att2-B.att2 from TABLEA as A join TABLEB as B...

你真的不想从一个id中减去另一个id,是吗

SELECT
  A.id,
  A.att1 - B.att1,
  A.att2 - B.att2
FROM
  A JOIN B ON A.id = B.id

你真的不想从一个id中减去另一个id,是吗

SELECT
  A.id,
  A.att1 - B.att1,
  A.att2 - B.att2
FROM
  A JOIN B ON A.id = B.id

不确定您要找的是您在问题中尚未提供的内容。你是说这样的事吗

SELECT
    CAST(A.id AS VARCHAR(200)) + '-' +  CAST(B.id AS VARCHAR(200)) + '=' + CAST(A.id - B.id AS VARCHAR(200)) id
    ,CAST(A.att1 AS VARCHAR(200)) + '-' +  CAST(B.att1 AS VARCHAR(200)) + '=' + CAST(A.att1 - B.att1 AS VARCHAR(200)) att1
    ,CAST(A.att2 AS VARCHAR(200)) + '-' +  CAST(B.att2 AS VARCHAR(200)) + '=' + CAST(A.att2 - B.att2 AS VARCHAR(200)) att2
FROM
    TABLEA A
    INNER JOIN TABLEB B ON A.id = B.id

不确定您要找的是您在问题中尚未提供的内容。你是说这样的事吗

SELECT
    CAST(A.id AS VARCHAR(200)) + '-' +  CAST(B.id AS VARCHAR(200)) + '=' + CAST(A.id - B.id AS VARCHAR(200)) id
    ,CAST(A.att1 AS VARCHAR(200)) + '-' +  CAST(B.att1 AS VARCHAR(200)) + '=' + CAST(A.att1 - B.att1 AS VARCHAR(200)) att1
    ,CAST(A.att2 AS VARCHAR(200)) + '-' +  CAST(B.att2 AS VARCHAR(200)) + '=' + CAST(A.att2 - B.att2 AS VARCHAR(200)) att2
FROM
    TABLEA A
    INNER JOIN TABLEB B ON A.id = B.id

这两个表应该至少有一个匹配列,否则,如何?我将使用的ID,但如何完成查询然后检查@John Pick answer。这两个表应该至少有一个匹配的列,否则,如何?我将使用的ID,但如何完成查询然后检查@John Pick answer。你想要达到的目标应该是好的。