准备创建表格报告
Contents
[
Hide
]
在创建表格报告之前,用户必须首先创建数据源、数据集和报告参数(可选),如数据源和查询.
下面,我们使用 SQL Server Reporting Services 2005 附带的 AdventureWorks 示例数据库。
- 创建一个名为 EmpSalesDetail 的数据集。我们将使用它作为表的数据源。该数据集具有三个参数:ReportYear、ReportMonth 和 EmpID。 定义 EmpSalesDetail 的 SQL 如下:
数据库
SELECT C.FirstName+' '+C.LastName 'Employee',
DATEPART(Month,SOH.OrderDate) 'OrderMonthNum',
PS.Name 'SubCat',
Sum(SOD.LineTotal) 'Sales',
SOH.SalesOrderNumber,
P.Name 'Product',
Sum(SOD.OrderQty) 'OrderQty',
SOD.UnitPrice,
PC.Name 'ProdCat'
FROM AdventureWorks.Person.Contact C,
AdventureWorks.HumanResources.Employee E,
AdventureWorks.Production.Product P,
AdventureWorks.Production.ProductCategory PC,
AdventureWorks.Production.ProductSubcategory PS,
AdventureWorks.Sales.SalesOrderDetail SOD,
AdventureWorks.Sales.SalesOrderHeader SOH,
AdventureWorks.Sales.SalesPerson SP
WHERE SOH.SalesOrderID = SOD.SalesOrderID
AND SOH.SalesPersonID = SP.SalesPersonID
AND SP.SalesPersonID = E.EmployeeID
AND E.ContactID = C.ContactID
AND SOD.ProductID = P.ProductID
AND P.ProductSubcategoryID = PS.ProductSubcategoryID
AND PS.ProductCategoryID = PC.ProductCategoryID
AND ((DATEPART(Year,SOH.OrderDate)=?)
AND (DATEPART(Month,SOH.OrderDate)=?) AND (SOH.SalesPersonID=?))
GROUP BY C.FirstName+' '+C.LastName, DATEPART(Month,SOH.OrderDate),
PS.Name,
SOH.SalesOrderNumber,
P.Name,
SOD.UnitPrice,
PC.Name
- 创建一个名为 SalesEmps 的数据集。我们将使用它作为 EmpID 参数的有效值。 定义 SalesEmps 的 SQL 是:
数据库
SELECT E.EmployeeID, C.FirstName + N' ' + C.LastName AS Employee
FROM HumanResources.Employee E INNER JOIN Sales.SalesPerson SP
ON E.EmployeeID = SP.SalesPersonID INNER JOIN Person.Contact C
ON E.ContactID = C.ContactID ORDER BY C.LastName, C.FirstName
- 创建三个报表参数:ReportYear、ReportMonth 和 EmpID。
- ReportYear 参数的有效值为:
- ReportMonth 参数的有效值为:
- 参数 EmpID 的有效值为:
- 将数据集参数映射到报表参数,如下: