Friday, April 18, 2014

[SQL] WHERE 和 HAVING 差異

WHERE 和 HAVING 都具有篩選資料的功能,但使用時機和方式,卻是有差異

MSDN WHERE 定義
指定查詢所傳回之資料列的搜尋條件。
MSDN HAVING 定義
指定群組或彙總的搜尋條件。 HAVING 只能搭配 SELECT 陳述式使用。 HAVING 通常用在 GROUP BY 子句中。當未使用 GROUP BY 時,HAVING 的行為會如同 WHERE 子句
WHERE 和 HAVNG 差異
  1. SELECT、FROM、WHERE、GROUP BY 和 HAVING 的 T-SQL 邏輯順序來看,順序分別為
    1. FROM
    2. WHERE
    3. GROUP BY
    4. HAVING
    5. SELECT
    WHERE 在 GROUP BY 之前,而 HAVING 在 GROUP BY 之後
  2. WHERE 無法對彙總欄位進行篩選,但 HAVING 可以
  3. HAVING 通常搭配 GROUP BY 來對彙總資料進行篩選
MSDN 範例

找出金額超過 100,000 的訂單
USE AdventureWorks2012
GO

SELECT 
  SalesOrderID, 
  SUM(LineTotal) AS SubTotal
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID
HAVING SUM(LineTotal) > 100000.00
ORDER BY SalesOrderID

Thursday, April 17, 2014

寶寶日記-9

寶寶日記-9

Monday, April 14, 2014

紙膠帶

課程問卷禮

紙交代-1

紙交代-2

Friday, April 11, 2014

[SQL] AdventureWork T-SQL 練習

論壇上看見針對 AdventureWorks 的作業練習題,內容如下

資料:AdventureWorks2008R2 的 Sales.SalesOrderHeader Table
需求:業務經理想要分析銷售區域代碼是 7、8、9 的這三個區域中各個業務員的銷售數據
條件:每個銷售區域、每個銷售員(包含無銷售員的網路訂單)的以下各項資料
  1. 訂單的筆數(根據有幾筆資料計算)
  2. 現金交易的筆數(根據 CreditCardID 欄位計算),CreditCardID 欄位內是NULL值的代表現金交易,提示:總交易筆數 = 現金交易的筆數 + 信用卡交易的筆數
  3. 信用卡交易的筆數(根據 CreditCardID 欄位計算)
  4. 客戶使用不同信用卡的張數(根據 CreditCardID 欄位判斷)
  5. 含稅的總銷售金額(由貨品小計( SubTotal 欄位)加稅額( TaxAmt 欄位)計算)
  6. 平均每筆銷售訂單的運費(根據 Freight 欄位計算)
  7. 輸出的結果要包含"區域代碼"( TerritoryID 欄位)、"業務員代號"( SalesPersonID 欄位)、"訂單筆數"、"現金交易筆數"、"信用卡交易筆數"、"信用卡數"、"總交易金額(含稅)"、"平均每筆運費"八個欄位
  8. 輸出時,先按區域代碼由小到大排列,區域代碼相同時,再按業務員代號從最小到最大排列
T-SQL 解法
SELECT 
    TerritoryID AS [區域代碼],
    SalesPersonID AS [業務員代號],
    COUNT(*) AS [訂單筆數],
    SUM(CASE WHEN CreditCardID IS NULL THEN 1 ELSE 0 END) AS [現金交易筆數] ,
    SUM(CASE WHEN CreditCardID IS NOT NULL THEN 1 ELSE 0 END) AS [信用卡交易筆數] ,
    COUNT(DISTINCT CreditCardID) AS [信用卡張數] ,
    SUM(SubTotal + TaxAmt) AS [總交易金額(含稅)],
    AVG(Freight) AS [平均每筆運費]
FROM Sales.SalesOrderHeader
WHERE TerritoryID IN (7,8,9)
GROUP BY TerritoryID , SalesPersonID
ORDER BY TerritoryID , SalesPersonID
[SQL] AdventureWork T-SQL 練習

沒有解答可以參考,也不知道對不對 ~~ ^_^''

Monday, April 07, 2014

植栽牆

台北捷運市政府站三號出口的植栽牆,腎蕨和黃金葛交錯,種在蛇木上的設計

植栽牆