1단원: 행렬 보고서에 대한 데이터 집합 쿼리 정의
- 이 단원에서는 기본 테이블 보고서 만들기 자습서에서 만든 보고서 서버 프로젝트에 새 보고서를 추가하고, 데이터 원본을 정의하고, 데이터 집합 쿼리를 정의하는 방법을 배웁니다. AdventureWorks2008 예제 데이터베이스가 데이터 원본으로 사용됩니다. 이 자습서에서는 이 데이터베이스가 로컬 컴퓨터에 설치된 SQL Server의 기본 인스턴스에 있다고 가정합니다.
기존 Reporting Services 프로젝트를 열려면
시작을 클릭하고 모든 프로그램, Microsoft SQL Server 2008을 차례로 가리킨 다음 Business Intelligence Development Studio를 클릭합니다.
파일 메뉴에서 열기를 가리킨 다음 프로젝트/솔루션을 클릭합니다.
Tutorial이라는 보고서 서버 프로젝트로 이동합니다.
Tutorial 폴더에서 Tutorial.sln을 클릭합니다.
열기를 클릭하여 프로젝트를 엽니다.
솔루션 탐색기에 Tutorial 프로젝트가 표시됩니다.
새 보고서를 만들려면
솔루션 탐색기에서 보고서를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 항목을 클릭합니다.
[!참고]
솔루션 탐색기가 보이지 않으면 보기 메뉴에서 솔루션 탐색기를 클릭합니다.
새 항목 추가 대화 상자의 템플릿 창에서 보고서를 선택합니다.
이름에서 Sales by Area and Year.rdl을 입력하고 추가를 클릭합니다.
보고서 디자이너가 디자인 모드에서 열리고 빈 보고서 정의가 표시됩니다.
보고서 데이터에 대한 Transact-SQL 쿼리를 정의하려면
보고서 데이터 창에서 새로 만들기를 클릭하고 데이터 원본을 클릭합니다.
이름 상자에서 AdventureWorksMatrixData를 입력합니다.
데이터 원본에서 새로 만들기를 클릭합니다. 데이터 원본 속성 대화 상자가 열립니다.
이름에서 AdventureWorks2008을 입력합니다.
포함된 연결이 선택되어 있으며 유형이 Microsoft SQL Server인지 확인합니다.
연결 문자열에서 다음을 입력합니다.
Data source=localhost; initial catalog=AdventureWorks2008
확인을 클릭합니다.
데이터 원본이 보고서 데이터 창에 나타납니다.
보고서 데이터 창에서 AdventureWorks2008을 마우스 오른쪽 단추로 클릭한 다음 데이터 집합 추가를 클릭합니다.
이름에서 Sales를 입력합니다.
쿼리 유형에서 텍스트가 선택되어 있는지 확인합니다.
쿼리 창 아래에서 쿼리 디자이너를 클릭하여 텍스트 기반 쿼리 디자이너를 엽니다.
쿼리 창에서 다음 Transact-SQL 쿼리를 붙여 넣습니다.
SELECT SOH.SalesPersonID AS ID, P.FirstName, P.LastName, SOH.SalesOrderNumber AS [Order], SOH.OrderDate AS [Date], DATEPART(yy, SOH.OrderDate) AS [Year], DATEPART(mm, SOH.OrderDate) AS [Month], ST.[Group] AS [Geography], ST.CountryRegionCode AS CountryRegion, ST.Name AS Territory, PPC.Name AS Category, PPS.Name AS Subcat, PP.Name AS Product, PP.Color, PP.Size, CASE WHEN PP.Size = 'S' THEN 1 WHEN PP.Size = 'M' THEN 2 WHEN PP.Size = 'L' THEN 3 WHEN PP.Size = 'XL' THEN 4 ELSE PP.Size END AS SizeSortOrder, SUM(SD.OrderQty) AS Qty, SUM(SD.LineTotal) AS LineTotal FROM Sales.SalesPerson AS SP INNER JOIN Sales.SalesOrderHeader AS SOH ON SP.BusinessEntityID = SOH.SalesPersonID INNER JOIN Person.Person AS P ON P.BusinessEntityID = SP.BusinessEntityID INNER JOIN Sales.SalesOrderDetail AS SD ON SD.SalesOrderID = SOH.SalesOrderID INNER JOIN Production.Product AS PP ON SD.ProductID = PP.ProductID INNER JOIN Sales.SalesTerritory AS ST ON ST.TerritoryID = SP.TerritoryID 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, P.LastName, P.FirstName, ST.[Group], ST.CountryRegionCode, ST.Name, PP.Color, PP.Size HAVING (DATEPART(yy,SOH.OrderDate) IN ('2003','2004') AND ST.[Group] = 'North America' AND LEFT(PPS.Name,1) IN ('C','T') AND LEFT(PPC.Name,1) = 'C')
쿼리의 결과를 보려면 쿼리 디자이너 도구 모음에서 실행(!)을 클릭하십시오.
결과 집합에서는 AdventureWorks2008 데이터베이스에 있는 7개 테이블, 18개 필드의 데이터를 볼 수 있습니다. 이 쿼리에는 주문 날짜의 연도와 월, 영업 지역의 지리적 위치(countryregion 및 territory) 및 제품 범주와 하위 범주를 포함하여 보고서의 데이터 그룹화에 사용할 수 있는 다양한 필드가 포함됩니다. 또한 판매 데이터를 필터링하여 2003년과 2004년의 판매 주문, 북미 지역의 판매량, Clothing 및 Components 범주의 판매량, 문자 C로 시작되는 하위 범주만 검색합니다. 이 자습서에서는 한 페이지에 표시할 수 있는 간단한 예를 만들기 위해 필터링이 사용됩니다.
확인을 클릭합니다. 다시 확인을 클릭합니다.
데이터 집합 쿼리의 필드가 보고서 데이터 창에 나타납니다.
다음 태스크
보고서에 대한 데이터를 검색하는 쿼리를 지정했습니다. 다음으로는 디자인 화면에 행렬 데이터 영역을 추가하고 그룹을 추가하여 행렬의 데이터를 구성합니다. 2단원: 행 및 열 그룹이 있는 행렬 데이터 영역 추가를 참조하십시오.