2014-09-05 30 views
2

我有一個sql查詢,我正在嘗試將計數聚合到一起,而且我遇到了一個問題。 我有一張表格將用戶連接到他們已保存的幾個類別。 UsersToCategories。所以這三個表格組合將是Users,Categories和UsersToCategories。下面的查詢將給我一個屬於一個用戶的所有類別的列表:將聚合計數合併到一個現有的sql查詢中

select c.CategoryID, c.CategoryName, utc.SortOrder 
from Categories c 
inner join UsersToCategories utc on utc.CategoryID = c.CategoryID 
where utc.UserID = 1234 

我有進一步的詳細程度有服務。一個類別中可以有多個服務,並且是一對多的關係。所以你有從上面的類別,服務和ServicesToCategories

我需要的是一種方法將第二塊僞代碼加入到我寫的頂級查詢中,以便我得到每個類別中有多少服務的計數。在這個級別上,我不需要知道這些服務是什麼,只是每個服務的原始計數。

我知道這是一些基本的東西,但我不是那麼好在SQL,我似乎無法找到我的問題的確切答案。任何幫助表示讚賞。

+1

樣本數據和預期的結果將真正幫助闡明你正在嘗試做的。 – 2014-09-05 03:34:52

+0

上面會返回類似於:1 |類別A | 1,2 | B類| 2 - 按CategoryID,CategoryName,SortOrder的順序。如果在類別A中有3個服務,服務A,服務B和服務C,我希望第一行返回:1 |類別A | 1 | 3,其中3是該類服務的總計數。希望有助於解釋 – optionsix 2014-09-05 03:38:03

回答

1

我想你需要的東西接近以下內容:

select c.CategoryID, c.CategoryName, utc.SortOrder, count(stc.ServiceID) 
from Categories c 
inner join UsersToCategories utc on utc.CategoryID = c.CategoryID 
inner join ServicesToCategories stc on stc.CategoryID = c.CategoryID 
where utc.UserID = 1234 
group by c.CategoryID, c.CategoryName, utc.SortOrder, utc.UserID 
+0

你有你的小組和錯誤順序的where子句,但這是我一直在尋找的。謝謝! – optionsix 2014-09-05 03:48:30

相關問題