Condividi tramite


Lezione 1: Definizione di una query del set di dati per un report matrice

In questa lezione verrà aggiunto un nuovo report al progetto server di report creato nell'esercitazione Creazione di un report tabella semplice. Verranno inoltre definite un'origine dati e una query del set di dati. Come origine dati verrà utilizzato il database di esempio AdventureWorks2008R2. Durante l'esercitazione si presuppone che il database si trovi nell'istanza predefinita di SQL Server installata nel computer locale.

Per aprire un progetto di Reporting Services esistente

  1. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft SQL Server 2008 R2, quindi Business Intelligence Development Studio.

  2. Scegliere Apri dal menu File, quindi selezionare Progetto/Soluzione.

  3. Passare al progetto server report denominato Tutorial.

  4. Nella cartella Tutorial fare clic su Tutorial.sln.

  5. Fare clic su Apri per aprire il progetto.

    Il progetto Tutorial verrà visualizzato in Esplora soluzioni.

Per creare un nuovo report

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su Report, scegliere Aggiungi, quindi fare clic su Nuovo elemento.

    Nota

    Se Esplora soluzioni non è visualizzato, scegliere Esplora soluzioni dal menu Visualizza.

  2. Nel riquadro Modelli della finestra di dialogo Aggiungi nuovo elemento selezionare Report.

  3. Nella casella Nome digitare Sales by Area and Year.rdl e fare clic su Aggiungi.

    La finestra Progettazione report verrà aperta in modalità progettazione, con una definizione di report vuota.

Per definire una query Transact-SQL per i dati del report

  1. Nel riquadro Dati report fare clic su Nuova, quindi su Origine dati. Verrà visualizzata la finestra di dialogo Proprietà origine dati.

  2. In Nome digitare AdventureWorks2008R2.

    Verificare che l'opzione Connessione incorporata sia selezionata e che Tipo sia impostato su Microsoft SQL Server.

  3. In Stringa di connessione digitare quanto segue:

    Data source=localhost; initial catalog=AdventureWorks2008R2
    
  4. Fare clic su OK.

    L'origine dati verrà visualizzata nel riquadro Dati report.

  5. Nel riquadro Dati report fare clic con il pulsante destro del mouse su AdventureWorks2008R2, quindi scegliere Aggiungi set di dati.

  6. Nella casella Nome digitare Sales.

  7. In Tipo di query verificare che sia selezionata l'opzione Testo.

  8. Al di sotto del riquadro Query fare clic su Progettazione query per aprire la finestra di progettazione query basata su testo.

  9. Nel riquadro delle query incollare la query Transact-SQL seguente:

    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')
    
  10. Per visualizzare i risultati della query, fare clic su Esegui (!) sulla barra degli strumenti Progettazione query.

    Nel set di risultati verranno visualizzati i dati contenuti in 18 campi di sette diverse tabelle del database AdventureWorks2008R2. La query include diversi campi che possono essere utilizzati per raggruppare i dati nel report, tra cui i campi relativi all'anno e al mese della data dell'ordine, alla posizione geografica dell'area di vendita (per country/region e territory) e alla categoria e sottocategoria del prodotto. I dati di vendita, inoltre, sono stati filtrati per recuperare solo gli ordini di vendita degli anni 2003 e 2004, per le vendite effettuate in America del nord, per le categorie Clothing e Components e per le sottocategorie che iniziano con la lettera C. In questa esercitazione i filtri vengono utilizzati per creare esempi in formato ridotto visualizzabili in una sola pagina.

  11. Fare clic su OK. Fare di nuovo clic su OK.

    I campi della query del set di dati verranno visualizzati nel riquadro Dati report.

Attività successiva

In questo modo si è specificata una query che recupera i dati per il report. Successivamente, si aggiungerà un'area dati matrice all'area di progettazione e i dati contenuti nella matrice verranno organizzati mediante l'aggiunta di gruppi. Vedere Lezione 2: Aggiunta di un'area dati matrice con gruppi di righe e di colonne.