MSSQL 存储过程必须声明变量
ALTER PROCEDURE [dbo].[facst_2024_01_Filter_Product_Type]
@customer VARCHAR(MAX)
AS
BEGIN
DECLARE @Filter_product_type VARCHAR(MAX), @YM VARCHAR(MAX),@WHERE_product_type VARCHAR(MAX);
DECLARE @WHERETOP1 VARCHAR(MAX), @WHERETOP2 VARCHAR(MAX), @WHERETOP3 VARCHAR(MAX);
DECLARE @versions1 VARCHAR(MAX), @versions2 VARCHAR(MAX), @versions3 VARCHAR(MAX);
DECLARE @TOP1 VARCHAR(MAX), @TOP2 VARCHAR(MAX);
SET @TOP1 = '1';
SET @TOP2 = '2';
SET @versions1 =
(
SELECT TOP 3 versions
FROM
(
SELECT versions,
ROW_NUMBER() OVER(
ORDER BY versions DESC) no
FROM [RS_SYS002].[dbo].[V_FCAST_TEST]
GROUP BY versions
) A
WHERE A.no = @TOP1
);
SET @versions2 =
(
SELECT TOP 3 versions
FROM
(
SELECT versions,
ROW_NUMBER() OVER(
ORDER BY versions DESC) no
FROM [RS_SYS002].[dbo].[V_FCAST_TEST]
GROUP BY versions
) A
WHERE A.no = @TOP2
);
SET @WHERETOP1 = 'versions=' + @versions1;
SET @WHERETOP2 = 'versions=' + @versions2;
SET @WHERETOP3 = 'versions=''20231130''' ;
SET @WHERE_product_type = 'table0.customer in (@customer)'
SET @YM =
(
SELECT MIN(YM) ym
FROM [V_FCAST_TEST] A
WHERE A.versions = @versions1
GROUP BY A.versions
);
SET @Filter_product_type ='SELECT DISTINCT (table0.product_type)product_type
FROM
(
SELECT 1 AS Order_by_ID,
[Customer],
[Product_Type],
[Sales]
FROM [RS_SYS002].[dbo].[V_FCAST_TEST]
WHERE versions = ''' + @versions1 + '''
UNION
SELECT 1 AS Order_by_ID,
[Customer],
[Product_Type],
[Sales]
FROM [RS_SYS002].[dbo].[V_FCAST_TEST]
WHERE versions = ''' + @versions2 + '''
UNION
SELECT 1 AS Order_by_ID,
[Customer],
[Product_Type],
[Sales]
FROM [RS_SYS002].[dbo].[V_FCAST_TEST]
WHERE versions = ''' + @versions3 + '''
) TABLE0
where ' + @WHERE_product_type + ''
EXEC (@Filter_product_type)
END
@customer 想用reporting services传字串赋值。目前提示必须声明变量@customer,不知道哪里出错,请各位大佬指教一下
相关推荐
MSSQL行列转换存储过程
#### 动态构建SQL语句在存储过程中,首先声明了几个变量`@sql`、`@i`、`@count`和`@month`,用于构建动态SQL语句。接下来的过程分为两个主要部分:1.
SqlServer存储过程游标
- `@temp`:虽然在本例中未使用,但它是作为预留变量而声明的。通过这些变量,我们可以执行以下操作:- 查询用户ID(`@uid`)。
MSSQL output使用
在函数体内部,声明了一个局部变量 `@ch VARCHAR(50)` 并赋值,然后通过 `RETURN @ch` 返回这个字符串。
MSSQL编写存储过程
#### 四、存储过程的规则与命名规范- **编程规则** - 存储过程的编写应遵循一系列规则,如变量声明、错误处理等。
vfp通过ODBC数据源操作MSSQL2000
在提供的【添加ODBC数据源.PRG】示例代码中,首先声明了一些变量,用于存储ODBC数据源的配置信息,如驱动类型、数据源名称、描述、服务器地址、数据库名、用户名和密码等。


疑难问题
