2017-01-03 1 views
1

Ich versuche, zwei VariablenSQL Server: Summieren zwei Variablen

DECLARE @RentsSum MONEY 
SET @RentsSum = (SELECT SUM(Price) 
       FROM Rents 
       WHERE StartDate IS NOT NULL) 
GO 

DECLARE @SalesSum MONEY 
SET @PriceSum = (SELECT SUM(Price) 
       FROM Purchases 
       WHERE DateBought IS NOT NULL) 
GO 

DECLARE @SalesAndRentsSum MONEY 

SET @SalesAndRentsSum = @RentsSum + @PriceSum; 

SELECT @SalesAndRentsSum 

in einem hinzufügen, aber ich einige seltsame Fehler hier ...

muss die skalare Variable „@PriceSum“ deklarieren .

Muss die Skalarvariable "@RentsSum" deklarieren.

+3

Entfernen Sie die 'GO'. Variablen werden nicht über den Stapel hinweg beibehalten. – DVT

+0

Ich habe es aber immer noch das gleiche Ergebnis – MitkoZ

Antwort

7

Entfernen Sie alle GO Wörter. Sie haben hier drei separate Batches und die Variable muss im Rahmen dieses Batches deklariert werden.

DECLARE @RentsSum MONEY, @SalesSum MONEY, @SalesAndRentsSum MONEY 

SET @RentsSum = (SELECT SUM(Price) 
       FROM Rents 
       WHERE StartDate IS NOT NULL) 

SET @SalesSum = (SELECT SUM(Price) 
       FROM Purchases 
       WHERE DateBought IS NOT NULL) 

SET @SalesAndRentsSum = @SalesSum + @PriceSum 

SELECT @SalesAndRentsSum 
+0

getan, aber immer noch die gleichen Fehler – MitkoZ

+0

Wenn Sie den Code kopieren und einfügen, was passiert @MitkoZ? Stellen Sie sicher, dass Sie es in einem neuen Fenster in SSMS tun. – scsimon

+0

@PriceSum in der set-Klausel und in der addierenden Klausel erhalten unterstrichen durch die Intelligenz + diese erros Msg 137, Ebene 15, Status 1, Zeile 7 Muss die skalare Variable "@PriceSum" deklarieren. Msg 137, Ebene 15, Status 2, Zeile 11 Muss die Skalarvariable "@PriceSum" deklarieren. – MitkoZ

1
DECLARE @RentsSum MONEY 
DECLARE @PriceSum MONEY 
DECLARE @SalesAndRentsSum MONEY 

SET @RentsSum = (SELECT SUM(Price) 
       FROM Rents 
       WHERE StartDate IS NOT NULL) 


SET @PriceSum = (SELECT SUM(Price) 
       FROM Purchases 
       WHERE DateBought IS NOT NULL) 


SET @[email protected][email protected]; 
SELECT @SalesAndRentsSum 
+0

Sie müssen @ @ PriceSum' einen Datentyp zuweisen –

+0

thx xD @WEI_DBA – LONG

Verwandte Themen