阿摩線上測驗 登入

申論題資訊

試卷:109年 - 109 經濟部所屬事業機構_新進職員甄試_統計資訊:1.資料庫及資料探勘 2.程式設計#92849
科目:國營事業◆1.資料庫及資料探勘 2.程式設計
年份:109年
排序:0

題組內容

二、某公司的關聯式資料庫中包含下列 3 個表格,請用 SQL 語言列出下列查詢。
 供應商資料表 Suppliers (SupplierID, SupplierName, ContactName, Address, City, PostalCode, Country, Phone),主鍵 SupplierID 為供應商編號, SupplierName 為供應商名稱, ContactName 為聯絡人, Address 為地址, City 為城市, PostalCode 為郵遞區號, Country 為國家, Phone 為電話

 產品資料表 Products (ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued), 主鍵 ProductID 為產品編號, ProductName 為產品名稱, SupplierID 為供應商編號, CategoryID 為分類編號, QuantityPerUnit 為每單位數量, UnitPrice 為單價, UnitsInStock 為在庫量, UnitsOnOrder 為訂購量, ReorderLevel 為再訂購水準, Discontinued 為是否停產

 分類資料表 Categories (CategoryID, CategoryName, Description),主鍵 CategoryID 為分類編號, CategoryName 為分類名稱, Description 為分類的描述

申論題內容

(一)找出位在相同城市的供應商編號,供應商名稱,以及城市。

詳解 (共 1 筆)

詳解 提供者:hchungw
要找出位在相同城市的供應商編號,供應商名稱,以及城市,可以使用 SQL 查詢來從 Suppliers 表格中提取相同城市的供應商資料。具體的 SQL 查詢如下:
sql
複製程式碼
SELECT s1.SupplierID, s1.SupplierName, s1.City
FROM Suppliers s1
JOIN Suppliers s2 ON s1.City = s2.City AND s1.SupplierID != s2.SupplierID
GROUP BY s1.SupplierID, s1.SupplierName, s1.City
ORDER BY s1.City, s1.SupplierName;
查詢說明:
SELECT 子句:選取供應商編號(SupplierID)、供應商名稱(SupplierName)和城市(City)。
FROM 子句和 JOIN 操作:從 Suppliers 表格中選取並通過自連接(self-join)進行連接。這裡的自連接是將表格 s1 和表格 s2 進行連接,條件是 s1.City = s2.City 且 s1.SupplierID != s2.SupplierID,確保比較的是不同供應商。
GROUP BY 子句:按 SupplierID、SupplierName 和 City 分組,以確保每個供應商的資料唯一。
ORDER BY 子句:按城市和供應商名稱進行排序,方便查看。
這個查詢的目的是找出每個城市中至少有兩個或兩個以上供應商的供應商資料。通過自連接,我們可以找到在相同城市的不同供應商。
測試數據範例
假設 Suppliers 表格有以下數據:
plaintext
複製程式碼
+------------+--------------+-------------+---------+
| SupplierID | SupplierName | City        | Country |
+------------+--------------+-------------+---------+
| 1          | Supplier A   | New York    | USA     |
| 2          | Supplier B   | Los Angeles | USA     |
| 3          | Supplier C   | New York    | USA     |
| 4          | Supplier D   | Chicago     | USA     |
| 5          | Supplier E   | Los Angeles | USA     |
| 6          | Supplier F   | Chicago     | USA     |
| 7          | Supplier G   | Miami       | USA     |
+------------+--------------+-------------+---------+
執行上述查詢後,將返回:
plaintext
複製程式碼
+------------+--------------+-------------+
| SupplierID | SupplierName | City        |
+------------+--------------+-------------+
| 1          | Supplier A   | New York    |
| 3          | Supplier C   | New York    |
| 2          | Supplier B   | Los Angeles |
| 5          | Supplier E   | Los Angeles |
| 4          | Supplier D   | Chicago     |
| 6          | Supplier F   | Chicago     |
+------------+--------------+-------------+
這樣就能夠找到位於相同城市的供應商的相關資料。