LearnItFirst User Forum

SQL Server 2008 SSAS Training Videos
Welcome Guest Search | New Posts | Members | Log In | Register

How to Rewrite a Derived Table to Use a Table Variable Options
Scott Whigham
Posted: Tuesday, November 07, 2006 11:36:00 AM


Rank: Super Mod

Joined: 3/20/2006
Posts: 476
Points: 1,053
Where do you live?: Dallas, TX
I put this up because, in one class I teach, we talk about how to rewrite a derived table to use a view.
Code:
-- What is the average sales price?
--            This must be done in two steps because you cannot take an aggregate of an aggregate
--            This is based on the Northwind database
SELECT Avg(TotalSales)
FROM (
    SELECT OrderId, SUM(NetAmount) AS TotalSales
    FROM [Order Details]
    GROUP BY orderId
) AS x

-- Step 1: Take derived table and create table variable from definition:
DECLARE @MyTable TABLE (OrderId INT, TotalSales MONEY)

-- Step 2: Populate the table variable with the derived table's result set
INSERT @MyTable
SELECT OrderId, SUM(NetAmount) AS TotalSales
    FROM [Order Details]
    GROUP BY orderId

-- Step 3: Replace derived table in original query with table variable
SELECT Avg(TotalSales)
FROM @MyTable
This is a tricky one. You must run all of this as one statement since the scope of the variable is the batch.
Users browsing this topic
Guest


Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.