1단원: 보고서를 날짜로 필터링하는 매개 변수 추가(SSRS)
보고서 쿼리에 시작 및 종료 날짜의 매개 변수를 포함하여 데이터 원본에서 검색한 데이터를 제한하는 날짜 범위를 지정할 수 있습니다. 추가 매개 변수를 만들어 데이터 원본에서 검색한 데이터를 필터링할 수 있습니다.
이 단원에서는 쿼리에 @StartDate 및 @EndDate 매개 변수를 추가하여 데이터 원본에서 검색되는 데이터를 제한합니다. StartDate 및 EndDate 보고서 매개 변수는 자동으로 생성되어 보고서 데이터 창에 나타납니다. 매개 변수는 대소문자를 구분합니다. 쿼리 매개 변수는 @ 기호로 시작하지만 보고서 매개 변수는 그렇지 않습니다.
매개 변수의 데이터 형식을 DateTime으로 설정하여 보고서 뷰어 도구 모음에 매개 변수 입력란과 함께 달력 컨트롤이 표시되도록 하고, 보고서가 자동으로 실행되도록 매개 변수의 기본값을 설정합니다. 마지막으로 쿼리 매개 변수에 바인딩되지 않은 보고서 매개 변수 DayofWeek를 만든 다음 이를 사용하여 데이터 원본에서 검색한 데이터를 필터링합니다.
이 자습서를 사용하려면 이전 단원인 자습서: 기본 테이블 보고서 만들기를 완료해야 합니다.
기존 보고서 서버 프로젝트를 열려면
시작을 클릭하고 모든 프로그램, Microsoft SQL Server 2008 R2을 차례로 가리킨 다음 Business Intelligence Development Studio를 클릭합니다.
파일 메뉴에서 열기를 가리킨 다음 프로젝트/솔루션을 클릭합니다.
자습서를 클릭하고 Tutorial.sln을 선택합니다. 이 자습서는 자습서: 기본 테이블 보고서 만들기에서 만들었습니다.
확인을 클릭하여 프로젝트를 엽니다. Sales Orders.rdl이라는 보고서가 하나 있는 Tutorial 프로젝트가 솔루션 탐색기에 표시됩니다.
참고 솔루션 탐색기가 표시되지 않으면 보기 메뉴에서 솔루션 탐색기를 클릭하십시오.
포함된 데이터 원본을 공유 데이터 원본으로 변환하려면
보고서 데이터 창에서 데이터 원본 AdventureWorks를 마우스 오른쪽 단추로 클릭한 다음 공유 데이터 원본으로 변환을 클릭합니다. AdventureWorks.rds라는 데이터 원본이 솔루션 탐색기에 추가됩니다.
보고서 데이터 창에서 AdventureWorks 데이터 원본을 마우스 오른쪽 단추로 클릭한 다음 데이터 원본 속성을 선택합니다.
이름에 AdventureWorks_Ref를 입력합니다.
확인을 클릭합니다.
기존 데이터 집합을 바꾸려면
보고서 데이터 창에서 데이터 집합 AdventureWorksDataset을 마우스 오른쪽 단추로 클릭한 다음 데이터 집합 속성을 클릭합니다.
[!참고]
보고서 데이터 창이 표시되지 않으면 보기 메뉴에서 보고서 데이터를 클릭합니다.
데이터 원본에서 AdventureWorks_Ref가 선택되어 있는지 확인합니다.
쿼리 유형에서 텍스트가 선택되어 있는지 확인합니다.
쿼리 디자이너 단추를 클릭하여 쿼리 디자이너를 엽니다.
입력란에서 텍스트를 다음 쿼리로 바꿉니다.
SELECT soh.OrderDate AS [Date], soh.SalesOrderNumber AS [Order], pps.Name AS Subcat, pp.Name as Product, SUM(sd.OrderQty) AS Qty, SUM(sd.LineTotal) AS LineTotal FROM Sales.SalesPerson sp INNER JOIN Sales.SalesOrderHeader AS soh ON sp.BusinessEntityID = soh.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS sd ON sd.SalesOrderID = soh.SalesOrderID INNER JOIN Production.Product AS pp ON sd.ProductID = pp.ProductID INNER JOIN Production.ProductSubcategory AS pps ON pp.ProductSubcategoryID = pps.ProductSubcategoryID INNER JOIN Production.ProductCategory AS ppc ON ppc.ProductCategoryID = pps.ProductCategoryID GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber, pps.Name, pp.Name, soh.SalesPersonID HAVING (ppc.Name = 'Clothing' AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate)))
다음 쿼리는 두 개의 제한 매개 변수가 있는 조건이 추가되었다는 점을 제외하면 이전 쿼리와 동일합니다.
AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate))
도구 모음에서 실행(!)을 클릭합니다. 매개 변수 값을 입력하는 쿼리 매개 변수 정의 대화 상자가 열립니다.
필터링된 결과 집합을 표시하기 위해 두 값을 제공합니다.
매개 변수 값 열에서 @StartDate에 대한 값을 입력합니다(예: 1/31/2001).
매개 변수 값 열에서 @EndDate에 대한 값을 입력합니다(예: 1/31/2003).
확인을 클릭합니다.
결과 집합에는 2001년과 2002년의 주문에 대한 필터링된 데이터 집합이 표시됩니다.
확인을 두 번 클릭합니다. 보고서 데이터 창에 데이터 집합 필드가 입력됩니다. StartDate 및 EndDate 보고서 매개 변수가 자동으로 생성되어 매개 변수 노드 아래에 나타납니다.
보고서에 대한 쿼리 매개 변수를 정의한 뒤에는 보고서 매개 변수의 데이터 형식을 원본 데이터의 데이터 형식에 맞게 변경해야 합니다. 기본값은 대부분의 데이터 원본에서 문자열 데이터 형식에 매핑되는 텍스트 형식입니다. 원본 데이터가 숫자, 부울 또는 날짜/시간인 경우에는 보고서 매개 변수 데이터 형식을 변경해야 합니다.
보고서 매개 변수의 데이터 형식과 기본값을 변경하려면
보고서 데이터 창에서 매개 변수를 확장하고 StartDate를 두 번 클릭합니다. 보고서 매개 변수 속성 대화 상자가 열립니다.
매개 변수의 이름이 StartDate이고 프롬프트가 Start Date인지 확인합니다.
데이터 형식에서 날짜/시간을 선택합니다.
확인을 클릭합니다.
보고서 데이터 창에서 EndDate를 두 번 클릭합니다. 이름과 프롬프트 값을 확인합니다.
데이터 형식에서 날짜/시간을 선택합니다.
확인을 클릭합니다.
미리 보기를 클릭합니다. StartDate 및 EndDate 매개 변수 각각이 달력 컨트롤과 함께 보고서 도구 모음에 나타납니다. 매개 변수가 Date/Time 데이터 형식인데 사용 가능한 값 목록을 정의하지 않은 경우 달력 컨트롤이 자동으로 나타납니다. 사용 가능한 값 목록을 정의한 경우에는 값 드롭다운 목록이 나타납니다.
두 매개 변수 값을 제공하여 보고서를 실행합니다.
StartDate 매개 변수 입력란에 날짜 1/31/2001을 입력합니다.
EndDate 매개 변수 입력란에 날짜 1/31/2003을 입력합니다.
보고서 보기를 클릭합니다. 보고서에는 보고서 매개 변수 값에 해당하는 데이터만 표시됩니다.
보고서에 대한 보고서 매개 변수를 만든 후에 매개 변수의 기본값을 추가할 수 있습니다. 기본 매개 변수를 사용하면 보고서가 자동으로 실행되며 그렇지 않은 경우에는 사용자가 매개 변수 값을 입력해야 보고서가 실행됩니다.
매개 변수의 기본값을 설정하려면
디자인 뷰의 보고서 데이터 창에서 매개 변수를 확장하고 StartDate를 두 번 클릭합니다. 보고서 매개 변수 속성 대화 상자가 열립니다.
기본값을 클릭합니다.
값 지정 옵션을 선택합니다. 추가 단추와 빈 값 표가 나타납니다.
추가를 클릭합니다. 표에 빈 행이 추가됩니다.
값 입력란을 클릭하고 기본 텍스트 (Null)을 삭제합니다.
1/31/2001을 입력합니다. 확인을 클릭합니다.
보고서 디자인 창에서 EndDate를 두 번 클릭합니다.
기본값을 클릭합니다.
값 지정 옵션을 선택합니다.
추가를 클릭합니다.
1/31/2003을 입력합니다. 확인을 클릭합니다.
미리 보기를 클릭합니다. 모든 매개 변수에 대해 기본값이 정의되어 있으므로 보고서가 즉시 실행됩니다.
쿼리에 새 필드를 추가하여 필터링에 사용하려면
디자인 뷰로 전환합니다.
데이터 집합 AdventureWorksDataset을 마우스 오른쪽 단추로 클릭하고 데이터 집합 속성을 선택합니다. 쿼리 디자이너를 열고 쿼리를 다음의 새 쿼리로 바꿉니다.
SELECT soh.OrderDate AS [Date], DATENAME(weekday, soh.OrderDate) as Weekday, soh.SalesOrderNumber AS [Order], pps.Name AS Subcat, pp.Name as Product, SUM(sd.OrderQty) AS Qty, SUM(sd.LineTotal) AS LineTotal FROM Sales.SalesPerson sp INNER JOIN Sales.SalesOrderHeader AS soh ON sp.BusinessEntityID = soh.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS sd ON sd.SalesOrderID = soh.SalesOrderID INNER JOIN Production.Product AS pp ON sd.ProductID = pp.ProductID INNER JOIN Production.ProductSubcategory AS pps ON pp.ProductSubcategoryID = pps.ProductSubcategoryID INNER JOIN Production.ProductCategory AS ppc ON ppc.ProductCategoryID = pps.ProductCategoryID GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber, pps.Name, pp.Name, soh.SalesPersonID HAVING (ppc.Name = 'Clothing' AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate)))
쿼리에서 SELECT 문에 다음 명령을 추가하면 판매가 발생한 요일에 대한 추가적인 계산 열이 정의됩니다.
DATENAME(weekday, soh.OrderDate) as Weekday.
실행(!)을 클릭합니다. 쿼리 매개 변수 정의 대화 상자가 열립니다.
매개 변수 값 열에서 @StartDate에 대한 값을 입력합니다(예: 1/31/2001).
매개 변수 값 열에서 @EndDate에 대한 값을 입력합니다(예: 1/31/2003).
확인을 클릭합니다. 결과 집합에 레이블이 Weekday인 새 열이 표시됩니다.
확인을 두 번 클릭합니다. 보고서 데이터 창에서 Weekday가 필드인지 확인합니다.
(옵션) 필터링되는 테이블 데이터의 날짜에 서식을 지정하려면
디자인 탭을 클릭합니다.
[Date] 필드 식이 있는 셀을 마우스 오른쪽 단추로 클릭한 다음 입력란 속성을 클릭합니다.
숫자를 클릭한 다음 범주 필드에서 날짜를 선택합니다.
형식 상자에서 Monday, January 31, 2000을 선택합니다.
확인을 클릭합니다.
새 보고서 매개 변수를 추가하려면
디자인 뷰의 보고서 데이터 창에서 새로 만들기를 클릭하고 매개 변수를 클릭합니다. 보고서 매개 변수 속성 대화 상자가 열립니다.
이름에서 DayoftheWeek를 입력합니다.
프롬프트에서 요일에 대한 필터:를 입력합니다.
데이터 형식이 Text인지 확인합니다.
기본값을 클릭합니다.
값 지정 옵션을 선택합니다. 추가 단추와 빈 값 표가 나타납니다.
추가를 클릭합니다.
Friday를 입력합니다.
확인을 클릭합니다.
매개 변수 식을 사용하여 테이블 필터를 설정하려면
디자인 뷰에서 테이블의 행 또는 열 핸들을 마우스 오른쪽 단추로 클릭하고 테이블릭스 속성을 선택합니다.
[!참고]
테이블 데이터 영역은 테이블릭스 데이터 영역을 기반으로 하는 템플릿입니다.
필터를 클릭합니다. 빈 필터 표가 나타납니다.
추가를 클릭합니다. 표에 빈 행이 추가됩니다.
식의 드롭다운 목록에서 [Weekday]를 선택합니다.
연산자에 등호(=)가 표시되는지 확인합니다.
값 입력란 옆의 식 단추(fx)를 클릭합니다. 식 대화 상자가 열립니다.
범주에서 매개 변수를 클릭합니다. 매개 변수의 현재 목록이 값 창에 나타납니다. DayoftheWeek를 두 번 클릭합니다. 매개 변수 식이 식 입력란에 추가됩니다. 이제 식 입력란에 다음 식이 표시됩니다. =Parameters!DayoftheWeek.Value.
확인을 클릭합니다. 다시 확인을 클릭하여 테이블릭스 속성 대화 상자를 종료합니다.
이제 Weekday 필드의 값을 DayoftheWeek에 대한 매개 변수 값과 비교할 수 있도록 테이블에 대한 필터가 설정됩니다. 예를 들어 보고서 도구 모음의 DayoftheWeek에 Friday 값을 입력하는 경우 보고서 처리기는 테이블에서 Weekday 필드 값이 Friday인 행만 처리합니다.
미리 보기를 클릭합니다. 모든 매개 변수에 기본값이 있으므로 보고서가 자동으로 실행됩니다. StartDate 및 EndDate에서 정의한 날짜 범위 내에 있고 Friday에 해당하는 값만 테이블에 표시됩니다.
다음 단계
지금까지 쿼리 매개 변수 및 보고서 매개 변수를 정의하고, 매개 변수의 기본값을 설정하고, 테이블에 필터를 설정했습니다. 다음 단원에서는 매개 변수에 사용 가능한 값 또는 유효한 값 목록을 만드는 방법을 배웁니다. 2단원: 매개 변수를 추가하여 사용 가능한 값 목록 만들기(SSRS)를 참조하십시오.