在此先感謝您提供的任何幫助,我是 MS SQL 的新手,我想做一些我認為可以實作但不知道如何做的事情。
我有一個名為“suppliers”的簡單表,我可以在其中執行(SELECT id,name FROM providers ORDER BY id ASC)
| ID | 姓名 |
|---|---|
| 1 | ACME |
| 2 | 第一站商業用品 |
| 3 | 一站式供應倉庫 |
| 4 | 農場第一供應 |
我有另一個名為“產品”的表
| ID | 姓名 | 供應商 ID |
|---|---|---|
| 1 | 專案 1 | 2 |
| 2 | 第 2 項 | 1 |
| 3 | 第 3 項 | 1 |
| 4 | 第 4 項 | 3 |
| 5 | 第 5 項 | 2 |
如果在同一行有意義,我想列出所有供應商并獲取每個供應商的產品總量?我只是不確定如何通過查詢傳遞suppliers.id 來獲取計數。
我希望能做到這一點:
| ID | 姓名 | total_products |
|---|---|---|
| 1 | ACME | 2 |
| 2 | 第一站商業用品 | 2 |
| 3 | 一站式供應倉庫 | 1 |
| 4 | 農場第一供應 | 0 |
我真的很感激這方面的任何幫助。
uj5u.com熱心網友回復:
這里要掌握三個概念。Left Join, group by, 和Count().
select s.id, s.name, Count(*) as total_products
from suppliers s
left join products p on s.id=p.supplier_id --the left join gets your no matches
group by s.id, s.name
左連接是一種連接,其中保留第一個表中的所有值,即使第二個表中沒有匹配項。
Group by是一種聚合工具,用于輸入要聚合的列。
Count()只是分組列的事務計數。
uj5u.com熱心網友回復:
嘗試這個 :-
SELECT SELECT id, name, C.total_products
FROM Suppliers S
OUTER APPLY (
SELECT Count(id) AS total_products
FROM Products P
WHERE P.supplier_id = S.id
) C
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/448972.html
