使用 SQL Server 中的存储过程,我试图将值放入几个条件变量中。我怀疑问题在于这些变量是计数/总和,类似于两个不同表的条件值。
例如:
CREATE PROC [dbo].[GetTrends]
AS
DECLARE @N_NE INT
DECLARE @BB_NE
DECLARE @date DATETIME
BEGIN
SELECT @date = GETDATE();
SELECT @N_NE = SUM(CASE WHEN a.STATUS = 'Active' AND b.REGION = 'NE' THEN 1 ELSE 0 END) +
SUM(CASE WHEN a.STATUS = 'Ready' AND b.REGION = 'NE' THEN 1 ELSE 0 END)
FROM dbo.FOO as a INNER JOIN dbo.BAR as b on a.ID = b.ID;
SELECT @BB_NE = SELECT COUNT(*) FROM dbo.ANOTHERTABLE
INSERT INTO dbo.Trends (Date) VALUES (@date);
UPDATE dbo.Trends SET N_NE = (@N_NE + @BB_NE) WHERE DATE = @date;
END;
单个SELECT
查询本身运行良好,但是当我尝试 时CREATE
,PROC
我收到了几个采用这种形式的错误:
Msg 4104,Level 16,State 1,Procedure My Proc,Line 51
无法绑定多部分标识符“a.STATUS”。
Msg 4104,Level 16,State 1,Procedure My Proc,Line 51
无法绑定多部分标识符“b.REGION”。
等等...
有没有办法解决这个问题/我犯了一个可怕的错误?非常感谢。