Share via


Lección 1: Definir una consulta de conjunto de datos para un informe de matriz

  • En esta lección, agregará un nuevo informe al proyecto de servidor de informes creado en el tutorial Crear un informe de tabla básico y definirá un origen de datos y una consulta de conjunto de datos. Usará la base de datos de ejemplo AdventureWorks2008 como origen de datos. En este tutorial se da por hecho que esta base de datos se encuentra en la instancia predeterminada del servidor SQL Server instalado en el equipo local.

Para abrir un proyecto de Reporting Services existente

  1. Haga clic en Inicio, seleccione Todos los programas, Microsoft SQL Server 2008 y, a continuación, haga clic en Business Intelligence Development Studio.

  2. En el menú Archivo, seleccione Abrir y haga clic en Proyecto o solución.

  3. Navegue hasta el proyecto de servidor de informes denominado Tutorial.

  4. En la carpeta Tutorial, haga clic en Tutorial.sln.

  5. Haga clic en Abrir para abrir el proyecto.

    El proyecto Tutorial se muestra en el Explorador de soluciones.

Para crear un informe nuevo

  1. En el Explorador de soluciones, haga clic con el botón secundario en Informes, seleccione Agregar y haga clic en Nuevo elemento.

    [!NOTA]

    Si no ve el Explorador de soluciones, en el menú Ver, haga clic en Explorador de soluciones.

  2. En el cuadro de diálogo Agregar nuevo elemento, en el panel Plantillas, seleccione Informe.

  3. En Nombre, escriba Sales by Area and Year.rdl y haga clic en Agregar.

    El Diseñador de informes se abre en el modo de diseño y muestra una definición de informe en blanco.

Para definir una consulta Transact-SQL para datos de informe

  1. En el panel Datos de informe, haga clic en Nuevo y, a continuación, haga clic en Origen de datos.

  2. En el cuadro Nombre, escriba AdventureWorksMatrixData.

  3. En Origen de datos, haga clic en Nuevo. Se abre el cuadro de diálogo Propiedades del origen de datos.

  4. En Nombre, escriba AdventureWorks2008.

    Compruebe que está seleccionada la opción Conexión incrustada y que el Tipo es Microsoft SQL Server.

  5. En Cadena de conexión, escriba lo siguiente:

    Data source=localhost; initial catalog=AdventureWorks2008
    
  6. Haga clic en Aceptar.

    El origen de datos aparece en el panel Datos de informe.

  7. En el panel Datos de informe, haga clic con el botón secundario en AdventureWorks2008 y, a continuación, haga clic en Agregar conjunto de datos.

  8. En Nombre, escriba Sales.

  9. En Tipo de consulta, compruebe que está seleccionada la opción Texto.

  10. Debajo del panel Consulta, haga clic en Diseñador de consultas para abrir el diseñador de consultas basado en texto.

  11. Pegue la siguiente consulta Transact-SQL en el panel de consulta:

    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')
    
  12. Para ver los resultados de la consulta, haga clic en Ejecutar (!) en la barra de herramientas del Diseñador de consultas.

    En el conjunto de resultados, podrá ver los datos de 18 campos de siete tablas diferentes de la base de datos AdventureWorks2008. Esta consulta incluye una serie de campos que se pueden usar para agrupar los datos en el informe, incluyendo el año y el mes de la fecha de pedido, la ubicación geográfica del territorio de ventas (para countryregion y territory), y la categoría y subcategoría de productos. Además, los datos de ventas se han filtrado para recuperar únicamente los pedidos de venta de los años 2003 y 2004 correspondientes a las ventas realizadas en Norteamérica, para las categorías Clothing y Components y las subcategorías que comienzan con la letra C. Los filtros se usan en este tutorial para crear ejemplos compactos que se puedan mostrar en una única página.

  13. Haga clic en Aceptar. Haga clic en Aceptar de nuevo.

    Los campos de la consulta del conjunto de datos aparecen en el panel Datos de informe.

Tarea siguiente

Ha especificado correctamente una consulta que recupera datos para un informe. A continuación, agregará una región de datos de matriz a la superficie de diseño y organizará los datos de la matriz mediante la adición de grupos. Vea Lección 2: Agregar una región de datos de matriz con grupos de filas y de columnas.