-3

使用 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查询本身运行良好,但是当我尝试 时CREATEPROC我收到了几个采用这种形式的错误:

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”。

等等...

有没有办法解决这个问题/我犯了一个可怕的错误?非常感谢。

4

1 回答 1

2

这是不可能的。
1. 确保您的两个连接都连接到同一个服务器/数据库
2. 停止所有可以对您的表进行 DDL 的服务
3. 尝试直接 SQL 并通过包含相同(复制/粘贴)查询的 SP。他们将返回相同的结果。

于 2013-11-12T16:46:54.353 回答