課程 25:商品庫存與供應鏈查詢
學會使用 SQL 查詢商品庫存與供應鏈資料,結合 JOIN 技巧分析商品存量、低庫存警示、供應商資料與採購記錄,實務導向練習。
一、庫存管理基礎
- 庫存管理是業務運營的關鍵部分,涉及到商品的儲存、追蹤和管理。
- SQL 可以幫助我們快速獲取庫存信息,進行庫存分析。
- 核心數據包括商品信息、當前庫存量、入庫記錄、出庫記錄等。
二、供應鏈查詢基礎
- 供應鏈涉及到從原材料到最終客戶的整個流程。
- 在資料庫中,供應鏈信息可能涉及商品、供應商、採購訂單、入庫記錄等多個表格。
- SQL 可以幫助我們追蹤商品來源、供應商表現等。
三、運用 SQL 進行庫存查詢
假設我們有一個 products
表 (id, name, price) 和一個 inventory
表 (product_id, stock_quantity)。
查詢所有商品的當前庫存
SELECT p.name, i.stock_quantity\nFROM products p\nJOIN inventory i ON p.id = i.product_id;\n
查詢庫存量低於特定數量的商品 (例如低於 10)
SELECT p.name, i.stock_quantity\nFROM products p\nJOIN inventory i ON p.id = i.product_id\nWHERE i.stock_quantity < 10;\n
四、運用 SQL 進行供應鏈查詢
假設我們還有一個 suppliers
表 (id, name) 和 product_suppliers
表 (product_id, supplier_id) 來記錄商品與供應商的關聯。
查詢某個供應商提供的所有商品 (例如供應商 id 為 1)
SELECT p.name\nFROM products p\nJOIN product_suppliers ps ON p.id = ps.product_id\nJOIN suppliers s ON ps.supplier_id = s.id\nWHERE s.id = 1;\n
五、常見挑戰
- 數據的即時性:庫存數據需要經常更新以反映真實情況。
- 複雜的供應鏈模型:真實的供應鏈可能涉及多個環節和數據來源。
- 整合不同數據源:如果數據來自不同的系統,可能需要 ETL (Extract, Transform, Load) 過程。
六、課後小練習
- 假設有一個
warehouse
表 (warehouse_id, location) 和inventory
表 (product_id, warehouse_id, stock_quantity)。請寫出一個查詢,找出每個倉庫中總庫存量最高的商品。 - 假設有一個
purchase_orders
表 (order_id, supplier_id, order_date) 和purchase_order_items
表 (order_id, product_id, quantity)。請寫出一個查詢,找出在過去 30 天內採購量最大的商品。
互動練習:庫存查詢模擬
商品表(products)
id | name |
---|---|
A01 | 筆記本 |
B02 | 鍵盤 |
C03 | 滑鼠 |
D04 | 顯示器 |
E05 | 印表機 |
庫存表(inventory)
product_id | stock_quantity |
---|---|
A01 | 50 |
B02 | 5 |
C03 | 120 |
D04 | 15 |
E05 | 0 |