今天要跟大家一起練習的主題,
是跟變數@很像的雙胞胎,
也是我工作時很喜歡的工具:佔存表。
(因為"AdventureWorks範例資料庫"的資料比較舊,
因此我們假設今年是2015年,
要來整理前一年2014年的消費資料。)
我們先來整理2014年,
每位會員的年度消費額總計:
SELECT datepart(year,OrderDate) 消費年度
,C.CustomerID 顧客編號
,sum(TotalDue) 消費金額
FROM [Sales].[SalesOrderHeader] S
JOIN [Sales].[Customer] C on S.CustomerID = C.CustomerID
WHERE datepart(year,OrderDate) = 2014
GROUP BY C.CustomerID,datepart(year,OrderDate)
ORDER BY SUM(TotalDue) DESC
得到的結果
--宣告佔存表
declare @佔存表名 類型table (欄位名 型態)
--insert資料
insert into @佔存表名(欄位)
--複製、貼上上面那段語法
(上面的查詢結果就是我們要存入的值)
將這樣的結果存成"佔存表"
--宣告佔存表
DECLARE @tempTable Table
(
cID int,
totalSpent float
)
--INSERT資料
INSERT INTO @tempTable(cID,totalSpent)
--複製、貼上上面那段語法
SELECT datepart(year,OrderDate) 消費年度
,C.CustomerID 顧客編號
,sum(TotalDue) 消費金額
FROM [Sales].[SalesOrderHeader] S
JOIN [Sales].[Customer] C on S.CustomerID = C.CustomerID
WHERE datepart(year,OrderDate) = 2014
GROUP BY C.CustomerID,datepart(year,OrderDate)
ORDER BY SUM(TotalDue) DESC
--檢視看看
SELECT * FROM @tempTable ORDER BY totalSpent DESC
除了沒有顯示年份外,
結果和上面相同:
這張佔存表示我們親手打造的,
因此表內的資料對我們來說不但熟悉,
也都是我們精挑細選的精華,
之後的工作就會因為這張佔存表而輕鬆許多啦!
之後幾天我們會一起從這張「精華佔存表」
整理出一些有用的資訊。