Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server存储过程和变量取决于两个表_Sql_Sql Server_Tsql_Stored Procedures - Fatal编程技术网

SQL Server存储过程和变量取决于两个表

SQL Server存储过程和变量取决于两个表,sql,sql-server,tsql,stored-procedures,Sql,Sql Server,Tsql,Stored Procedures,使用SQLServer中的存储过程,我试图将值放入几个条件变量中。我怀疑问题在于,这些变量是以两个不同表为条件的类似计数/求和的值 例如: 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 = 'A

使用SQLServer中的存储过程,我试图将值放入几个条件变量中。我怀疑问题在于,这些变量是以两个不同表为条件的类似计数/求和的值

例如:

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
查询本身运行良好,但当我尝试
创建
过程时,会出现以下形式的错误:

Msg 4104,16级,状态1,程序我的程序,第51行
无法绑定多部分标识符“a.STATUS”。
Msg 4104,16级,状态1,程序我的程序,第51行
无法绑定多部分标识符“b.REGION”

等等

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

这是不可能的。
1.确保两个连接都连接到同一服务器/数据库
2.停止所有可以DDL您的表的服务

3.尝试使用直接SQL和仅包含相同(复制/粘贴)查询的via SP。它们将返回相同的结果。

您可以发布不起作用的代码,而不是发布工作代码?您确实需要显示
创建过程
代码。如果
SELECT
本身工作,那么它不应该抛出该错误later@user1893148但是你也可能没有发布error@user1893148如果这些表中存在这些列,则不会出现该错误。因此,您正在删除已发布代码上的错误,这是不可能的。发布失败的实际代码,而不是过程中其他地方的模糊表示。