No SQL Server 2008, estou tentando executar o cálculo abaixo, mas estou recebendo um erro de
Msg 207, Level 16, State 1, Line 11
Nome de coluna inválido 'Rpt1'.
Msg 207, Level 16, State 1, Line 11
Nome de coluna inválido 'Rpt2'.
Esta é a sintaxe que estou tentando executar.
Declare @saleID varchar(100), @totalsales int
Set @totalsales = (Select COUNT(numsales)
FROM OPENQUERY(444.222.333.123, 'Select
numsales, saleID
FROM saledate')
WHERE saleID = @saleID)
Select
Rpt1 = count(case when empID = '1931' Then 1 else 0 end)
,Rpt2 = count(case when empID = '1831' Then 1 else 0 end)
,Balance = @totalsales-Rpt1-Rpt2
From totalsaleinfo
Where saleid = @saleid
Outra abordagem é que você pode colocar suas consultas em camadas como subconsultas, o que permite capturar todos os resultados, assim. Além disso, você provavelmente queria usar "sum" em vez de "count".
Você precisará armazenar o rpt1 e o rpt2 como variáveis e, em seguida, subtrilhar do total, não como aliases.
Ou execute:
Onde vendaid = @saleid