"SQL Server Reporting Services 2012"에서 "Microsoft SQL Server 보고서 작성기 3.0"을 사용하고 있습니다. 주 보고서의 main.rdl에서 보고서 작성기 3.0을 사용하여 SQL 쿼리의 열 이름을 매개 변수로 전달하는 방법
나는 클릭하고 드릴 스루 조치 main.rdl 보고서는 테이블이detail.rdl 드릴 스루 보고서 및이 테이블의 각 텍스트 상자입니다 호출하고있다. 사용자가 텍스트 상자를 클릭하면 detail.rdl 보고서가 호출됩니다. detail.rdl 보고서로 전달되는 하나의 매개 변수는 SQL의 열 이름으로 사용됩니다. 이 SQL은 detail.rdl 보고서에 필요한 데이터를 가져옵니다.
매개 변수를 사용하여 작성된 detail.rdl 보고서에 대해 SQL 쿼리를 실행하면 오류가 표시되지 않지만 데이터를 가져 오지는 않습니다. 필자는 매개 변수가 Text라는 데이터 유형을 가지고 있기 때문에 SQL에서 데이터를 가져 오지 않도록하는 따옴표로 바뀌 었다고 생각합니다.
따옴표없이 매개 변수 값으로 열 이름을 바꾼 후 동일한 SQL을 DB에서 직접 실행하면 데이터를 가져옵니다.
여기서 누락 된 열 이름으로 사용될 매개 변수를 전달하는 특정 방법이 있습니까? 내가 보고서 빌더에서 노력하고
SQL :
SELECT
table_name.column1
,table_name.column21
,table_name.column15
,table_name.column6
,table_name.column9
,table_name.column2
,table_name.column19
,@column --the value in this variable is an existing column name from table table_name
FROM
table_name
WHERE
table_name.column1 LIKE @company
AND table_name.column21 LIKE @platform
AND (@column is null OR @column = '' OR @column = 'N/A' OR @column = 'Unknown');--I want to use same variable here as well
UPDATE : 나는 줄 뒤에
DECLARE @company varchar(10)
SET @company = ''company_name''
DECLARE @platform varchar(10)
SET @platform = ''platform_name''
을 추가하여 작업 SQL을 얻을 수 있었다
SET @SQL =
'
불행히도 "Microsoft SQL Server 보고서 작성기 3.0 "은 값이 정의되어 있어도 변수 @SQL의 값을 묻는 메시지이므로이 SQL을 실행할 수 없습니다. 나는 선언하고 같은 라인에 @SQL의 값을 설정하려고 않았다
DECLARE @SQL varchar(5000) = 'DECLARE @company varchar(10)
그러나 보고서 빌더는 여전히
문제는 내 잘못 실행됩니다. 매개 변수 이름은 대소 문자를 구별하므로 모든 곳에서 '@SQL'을 읽도록하고, 마지막 구문은 '@sql'으로 표시합니다. SSRS에서 디자이너에 '@sql'매개 변수도 추가 할 수 있습니다.이 경우 안전하게 제거 할 수 있습니다. . –