Tutorial: Definieren eines Datasets für den Tabellenbericht (Reporting Services)
Sobald Sie die Datenquelle für den paginierten Bericht definiert haben, müssen Sie ein Dataset für eine Datenquelle definieren. In Reporting Services enthält ein Dataset die Daten, die Sie in Berichten verwenden. Ein Dataset umfasst einen Zeiger auf eine Datenquelle und eine Abfrage zur Verwendung durch den Bericht, sowie berechnete Felder und Variablen.
In diesem Tutorial:
- Definieren Sie ein Datasets für den Tabellenbericht.
- Erstellen Sie eine Transact-SQL-Abfrage zum Abrufen von Informationen zu Verkaufsaufträgen.
Voraussetzungen
- Abschluss von Schritt 1: Erstellen eines Berichtsserverprojekts.
- Abschluss von Schritt 2: Angeben von Verbindungsinformationen.
Definieren einer Transact-SQL-Abfrage für Berichtsdaten
Erstellen Sie eine Transact-SQL-Abfrage, die Informationen zu Verkaufsaufträgen aus der AdventureWorks2022
-Datenbank abruft.
Öffnen Sie Ihre Berichtsdefinitionsdatei für Verkaufsaufträge (.rdl) in Visual Studio.
Wählen Sie im Bereich Berichtsdaten die Option Neu>Dataset... aus. Der Dialog Dataseteigenschaften wird mit hervorgehobenem Abschnitt Abfrage geöffnet.
Geben Sie in das Feld Name „AdventureWorksDataset“ ein.
Wählen Sie die Option Ein in meinen Bericht eingebettetes Dataset verwenden aus.
Wählen Sie in der Liste Datenquelle die Option AdventureWorks2022 aus.
Wählen Sie für Abfragetyp die Option Text aus.
Geben Sie die folgende Transact-SQL-Abfrage entweder manuell oder durch Kopieren und Einfügen in das Textfeld Abfrage ein.
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'
(Optional) Wählen Sie Abfrage-Designer aus. Die Abfrage wird im textbasierten Abfrage-Designer angezeigt. Wählen Sie in der Symbolleiste des Abfrage-Designers die Option Ausführen aus, um die Ergebnisse der Abfrage anzuzeigen (). Das angezeigte Dataset enthält sechs Felder aus vier Tabellen der Datenbank
AdventureWorks2022
. Diese Abfrage nutzt Transact-SQL-Funktionen wie Aliase. Beispielsweise wird die Tabelle SalesOrderHeader alssoh
bezeichnet.Klicken Sie auf OK, um den Abfrage-Designer zu beenden.
Klicken Sie auf OK, um den Dialog Dataseteigenschaften zu beenden. Die Felder und das Dataset „AdventureWorksDataset“ werden im Bereich Berichtsdaten angezeigt.