Я новичок в SQL и вам нужно создать хранимую процедуру, которая извлекает все элементы из таблицы +, группирует их по категориям и добавляет количество для каждой категории.SQL Server: группировка элементов не работает
До сих пор у меня есть следующее, все элементы правильно, но больше не группируются и не подсчитываются по категориям (см. Ниже). Проблема заключается в том, что он перечисляет все элементы отдельно, а не группирует их под соответствующей группой. Я предполагаю, что мне нужно вложить выделение здесь, но не знаю, как это сделать.
Может кто-то здесь помочь мне с этим?
Моя хранимая процедура:
CREATE PROCEDURE [dbo].[FetchRequests]
AS
BEGIN
SET NOCOUNT ON;
SELECT categoryX, itemID
COUNT(*) AS groupCount,
MAX(dateX) AS groupNewest
FROM LogRequests
WHERE logStatus = 'active'
GROUP BY categoryX, itemID
ORDER BY groupCount desc, categoryX
FOR XML PATH('categoryX'), ELEMENTS, TYPE, ROOT('ranks')
END
Текущий результат:
<ranks>
<categoryX>
<categoryX>Category 1</categoryX>
<itemID>ID 1</itemID>
<groupCount>1</groupCount>
<groupNewest>2013-11-21</groupNewest>
</categoryX>
<categoryX>
<categoryX>Category 2</categoryX>
<itemID>ID 2</itemID>
<groupCount>1</groupCount>
<groupNewest>2013-10-30</groupNewest>
</categoryX>
// ...
</ranks>
Ожидаемый результат:
<ranks>
<categoryX>
<categoryX>Category 1</categoryX>
<groupCount>3</groupCount>
<groupNewest>2013-11-21</groupNewest>
<itemID>ID 1</itemID>
<itemID>ID 2</itemID>
<itemID>ID 3</itemID>
<categoryX>Category 2</categoryX>
<groupCount>4</groupCount>
<groupNewest>2013-10-15</groupNewest>
<itemID>ID 1</itemID>
<itemID>ID 2</itemID>
<itemID>ID 3</itemID>
<itemID>ID 4</itemID>
// ...
</categoryX>
</ranks>
Человек спасибо за любую помощь, Тим.
Каков фактический результат? –
Я добавлю это на свой пост. – user2571510
вы можете отступать ' элементы с пробелами, но это не делает его детьми' 'element –