2013-04-06 4 views
-2

Я новичок в SQL Server, и у меня возник вопрос, который меня озадачивает.SQL Server 2008: подсчет количества записей, хранящихся в категории

У меня есть 2 таблицы данных Category и Product. Ниже приведены таблицы в деталях.

Категория:

------------------------------------------------------ 
categoryId | categoryName  | desc 
------------------------------------------------------ 
1   | Shirt    | Men's Shirt 
2   | Jeans    | Men's Pants 
3   | Accessories  | Women's Accessories 
------------------------------------------------------ 

Продукт

--------------------------------------------------------------- 
productID | desc      | categoryId 
--------------------------------------------------------------- 
1   | Slim-fit Classic Shirt | 1 
2   | Denim Slim-fit jeans  | 2 
3   | Denim Regular-fit jeans | 2 
4   | Bracelet     | 3 
--------------------------------------------------------------- 

Как я могу получить точный результат, как следует?

------------------------------------------------------------------- 
categoryId | categoryName  | numOfRecord | desc 
------------------------------------------------------------------- 
1   | Shirt    | 1   | Men's Shirt 
2   | Jeans    | 2   | Men's Pants 
3   | Accessories  | 1   | Women's Accessories 
------------------------------------------------------------------- 

Извините за мой плохой английский.

+2

Этот вопрос не показывает каких-либо исследовательских усилий. Очень важно сделать домашнее задание **. Расскажите нам, что вы нашли, и *** почему *** это не соответствовало вашим потребностям. Это демонстрирует, что вы потратили время, чтобы попытаться помочь себе, это избавляет нас от повторения очевидных ответов и, прежде всего, помогает вам получить более конкретный и релевантный ответ. [FAQ] (http://stackoverflow.com/questions/how-to-ask). – Kermit

ответ

1

Вы можете использовать COUNT и GROUP BY.

Попробуйте это:

SELECT c.categoryId, c.categoryName, count(*) as numOfRecord, p.[desc] 
FROM dbo.Category AS c INNER JOIN dbo.Product AS p 
ON c.categoryId = p.categoryId 
GROUP BY c.categoryId, c.categoryName, p.[desc]; 
Смежные вопросы