2017-01-03 7 views
1

Я пытаюсь добавить две переменныеSQL Server: суммированием двух переменных

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 

в один, но я получаю некоторые странные ошибки здесь ...

Необходимо объявить скалярную переменную «@PriceSum» ,

Должен объявить скалярную переменную "@RentsSum".

+3

Снимите 'GO'. Переменные не сохраняются во всей партии. – DVT

+0

Я сделал это, но все тот же результат – MitkoZ

ответ

7

Удалить все GO слов. Здесь у вас три отдельные партии, и переменная должна быть объявлена ​​в рамках этой партии.

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

сделал, но все равно получаю те же ошибки – MitkoZ

+0

Если вы скопируете и вставьте код выше того, что происходит @MitkoZ? Обязательно сделайте это в новом окне в SSMS. – scsimon

+0

@PriceSum в предложении set и в добавлении клаузулы подчеркиваются intellisence + эти erros Msg 137, уровень 15, состояние 1, строка 7 Должен объявить скалярную переменную "@PriceSum". Msg 137, уровень 15, состояние 2, строка 11 Должен объявить скалярную переменную «@PriceSum». – 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

Вам необходимо присвоить тип данных '@ PriceSum' –

+0

thx xD @WEI_DBA – LONG