2016-07-25 1 views
1

J'essaie d'obtenir la différence de deux requêtes sum(). C'est l'idée du code que j'essaie de comprendre. J'ai essayé de déclarer des variables mais je n'ai pas réussi à obtenir le résultat du select dans les variables. Y a-t-il une manière de faire ça?Mathématiques sur deux requêtes scalaires dans SQL

Répondre

1

Il suffit de mettre un SELECT devant:

SELECT (SELECT sum(depamt) FROM Daily1) - (SELECT sum(depamt) FROM Daily2); 

Je préfère mettre les sous-requêtes dans la clause FROM:

SELECT sum1 - sum2 
FROM (SELECT sum(depamt) as sum1 FROM Daily1) x CROSS JOIN 
    (SELECT sum(depamt) as sum2 FROM Daily2) y; 

Cela vous permet de choisir chaque valeur individuellement, si vous le souhaitez.

+0

Merci, Gordon. Pourquoi utiliseriez-vous la jointure croisée? Juste pour que vous ayez les résultats des deux requêtes ensemble? – Missy

+1

@Missy. . . Cela vous permet de voir chaque valeur dans le calcul si vous le souhaitez, sans répéter la sous-requête. –

+0

Merci, Gordon. J'apprécie ton aide :) – Missy

1

J'ai essayé de déclarer des variables mais je n'ai pas pu obtenir le résultat de la sélection dans les variables. Y a-t-il une manière de faire ça?

Pour ce faire en utilisant des variables:

Declare @Sum1 int, @Sum2 int 

SELECT @Sum1 = sum(depamt) FROM Daily1 
SELECT @Sum2 = sum(depamt) FROM Daily2 

Select @Sum1 - @Sum2