Dela via


Självstudie: Transformera data med en lagrad procedur i ett lager

Gäller för:✅ SQL-analysslutpunkt och lager i Microsoft Fabric

I den här självstudien lär du dig hur du skapar en lagrad procedur i ett lager för att transformera data i en tabell.

Not

Den här självstudien är en del av ett komplett -scenario. För att kunna slutföra den här självstudien måste du först slutföra de här självstudierna:

  1. Skapa en arbetsyta
  2. Skapa ett lager
  3. ladda in data i ett datalager

Skapa en lagrad procedur

I den här uppgiften får du lära dig hur du skapar en lagrad procedur för att transformera data i en lagertabell.

  1. Kontrollera att arbetsytan som du skapade i den första handledningen är öppen.

  2. I menyfliksområdet Start väljer du Ny SQL-fråga.

    Skärmbild av Start-menyns menyfliksområde som visar det markerade alternativet Ny SQL-fråga.

  3. Klistra in följande kod i frågeredigeraren. Koden släpper den lagrade proceduren (om den finns) och skapar sedan en lagrad procedur med namnet populate_aggregate_sale_by_city. Logiken för lagrad procedur skapar en tabell med namnet aggregate_sale_by_date_city och infogar data i den med en grupp-efter-fråga som kopplar samman tabellerna fact_sale och dimension_city.

     --Drop the stored procedure if it already exists.
     DROP PROCEDURE IF EXISTS [dbo].[populate_aggregate_sale_by_city];
     GO
    
     --Create the populate_aggregate_sale_by_city stored procedure.
     CREATE PROCEDURE [dbo].[populate_aggregate_sale_by_city]
     AS
     BEGIN
         --Drop the aggregate table if it already exists.
         DROP TABLE IF EXISTS [dbo].[aggregate_sale_by_date_city];
         --Create the aggregate table.
         CREATE TABLE [dbo].[aggregate_sale_by_date_city]
         (
            [Date] [DATETIME2](6),
            [City] [VARCHAR](8000),
            [StateProvince] [VARCHAR](8000),
            [SalesTerritory] [VARCHAR](8000),
            [SumOfTotalExcludingTax] [DECIMAL](38,2),
            [SumOfTaxAmount] [DECIMAL](38,6),
            [SumOfTotalIncludingTax] [DECIMAL](38,6),
            [SumOfProfit] [DECIMAL](38,2)
         );
    
         --Load aggregated data into the table.
         INSERT INTO [dbo].[aggregate_sale_by_date_city]
         SELECT
            FS.[InvoiceDateKey] AS [Date], 
            DC.[City], 
            DC.[StateProvince], 
            DC.[SalesTerritory], 
            SUM(FS.[TotalExcludingTax]) AS [SumOfTotalExcludingTax], 
            SUM(FS.[TaxAmount]) AS [SumOfTaxAmount], 
            SUM(FS.[TotalIncludingTax]) AS [SumOfTotalIncludingTax], 
            SUM(FS.[Profit]) AS [SumOfProfit]
         FROM [dbo].[fact_sale] AS FS
         INNER JOIN [dbo].[dimension_city] AS DC
            ON FS.[CityKey] = DC.[CityKey]
         GROUP BY
            FS.[InvoiceDateKey],
            DC.[City], 
            DC.[StateProvince], 
            DC.[SalesTerritory]
         ORDER BY 
            FS.[InvoiceDateKey], 
            DC.[StateProvince], 
            DC.[City];
     END;
    
  4. Om du vill köra frågan går du till menyfliksområdet frågedesigner och väljer Kör.

  5. När utförandet är klart byter du namn på frågan till Create Aggregate Procedure.

  6. I fönstret Explorer kontrollerar du att den aggregate_sale_by_date_city lagrade proceduren finns i mappen Lagrade procedurer för dbo-schemat.

    Skärmbild av explorer-fönstret som markerar den nyligen skapade lagrade proceduren.

Kör den lagrade proceduren

I den här uppgiften får du lära dig hur du kör den lagrade proceduren för att transformera data i en lagertabell.

  1. Skapa en ny fråga.

  2. Klistra in följande kod i frågeredigeraren. Koden kör den populate_aggregate_sale_by_city lagrade proceduren.

     --Execute the stored procedure to create and load aggregated data.
     EXEC [dbo].[populate_aggregate_sale_by_city];
    
  3. Kör sökningen.

  4. När körningen är klar byter du namn på frågan till Run Aggregate Procedure.

  5. Om du vill förhandsgranska aggregerade data går du till fönstret Explorer och väljer tabellen aggregate_sale_by_date_city.

    Noteringen

    Om tabellen inte visas väljer du ellipsen (...) för mappen Tables och väljer sedan Uppdatera.

    Skärmbild av explorer-fönstret som markerar den nyligen skapade tabellen.

Gå vidare