Я использую следующую хранимую процедуру, чтобы сгруппировать элементы в таблице по категориям и добавить их количество и максимальное значение для каждой группыSQL Server: Выберите и сосчитать в одном запросе
Это прекрасно работает до сих пор. Как я могу достичь, что для каждой группы я также получаю содержащиеся элементы? Когда я просто добавляю столбец (например, itemID) к выбору здесь, я получаю сообщение об ошибке.
Моя хранимая процедура до сих пор:
ALTER PROCEDURE [dbo].[FetchRequests]
AS
BEGIN
SET NOCOUNT ON;
SELECT categoryX,
COUNT(*) AS groupCount,
MAX(dateX) AS groupNewest
FROM LogRequests
WHERE logStatus = 'active'
GROUP BY categoryX
ORDER BY groupCount desc, categoryX
FOR XML PATH('categoryX'), ELEMENTS, TYPE, ROOT('ranks')
END
Я получаю ошибку, когда я просто добавить "Itemid" в приведенном выше Select: Msg 8120, уровень 16, состояние 1, процедура FetchRequests, Столбец «LogRequests.itemID» недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY.
Ожидаемый результат:
- Категория 1
- groupCount
- groupNewest
- список всех itemIDs с категории = 1
- Категория 2
- groupCount
- groupNewest
- список всех itemIDs с категорией = 2
- Категории 3
- groupCount
- groupNewest
- список всех itemIDs с категорией = 3
Спасибо за любую помощь в этом, Тим.
Можете ли вы предоставить образцы данных и ожидаемый результат? Я не понимаю, что вы подразумеваете под «Я также получаю содержащиеся в нем элементы». –
Спасибо. Я добавлю это на свой пост. – user2571510