2016-07-25 6 views
1

Ich versuche, die Differenz von zwei sum() Abfragen zu erhalten. Dies ist die Idee des Codes, den ich herausfinden möchte.Do Math für zwei skalare Abfragen in SQL

Ich habe versucht, Variablen zu deklarieren, aber ich konnte das Ergebnis der Auswahl nicht in die Variablen erhalten. Gibt es eine Möglichkeit, dies zu tun?

Antwort

1

Einfach ein SELECT vor:

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

Auf diese Weise können Sie jeden Wert individuell wählen, wenn man so will:

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

Ich ziehe Subqueries in der FROM Klausel setzen.

+0

Vielen Dank, Gordon. Warum würdest du das Cross mitmachen? Nur damit Sie die Ergebnisse der beiden Abfragen zusammen haben? – Missy

+1

@Missy. . . Es ermöglicht Ihnen, jeden Wert in der Berechnung anzuzeigen, wenn Sie möchten, ohne die Unterabfrage zu wiederholen. –

+0

Danke, Gordon. Ich schätze Ihre Hilfe :) – Missy

1

Ich habe versucht, Variablen zu erklären, aber ich konnte das Ergebnis der wählen in die Variablen nicht bekommen. Gibt es eine Möglichkeit, dies zu tun?

es zu tun Variablen mit:

Declare @Sum1 int, @Sum2 int 

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

Select @Sum1 - @Sum2