2009-07-09 7 views
1

Salut je me demandais si quelqu'un sait comment je peux calculer la différence entre deux tables dans tsql. Je ne veux pas dire trouver quelles cellules sont différentes - je veux dire calculer la différence numérique. Par exemple, le tableau A contient la colonne 1, la colonne 2 et une seule ligne. A1 = 40, B1 = 30. Le tableau B a la colonne 1, la colonne 2 et une seule 1 ligne. A1 = 25, B1 = 10. Alors, comment pourrais-je obtenir (A1 = 15, B1 = 20) en utilisant TSQL?SQL calculer la différence entre les valeurs de la cellule

Répondre

2

Étant donné que vous avez aucun moyen de joindre les tables, vous aurez besoin d'un produit cartésien des deux. Heureusement puisque chaque table n'a qu'un seul enregistrement qui n'est pas un problème.

vous le faites comme ceci:

SELECT 
    TableA.A1 - TableB.A1 AS A1, 
    TableA.B1 - TableB.B1 AS B1 
FROM TableA, TableB 

Si vous aviez plus d'un enregistrement dans chaque tableau, cette requête renvoie un résultat pour chaque paire d'enregistrements dans les deux tableaux. Donc, si TableA a n enregistrements et TableB a m, le résultat aura n * m enregistrements.

1
SELECT a.column1 - b.column1 , a.column2 - b.column2 
FROM a 
CROSS JOIN 
     b 
1

libre de mon esprit =)

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 
Questions connexes