Я пытаюсь выбрать сгруппированный набор строк и объединить значения первичного ключа этих строк в оператор выбора, а также подсчитать строки и выбрать это значение.
Таблица:
JobTable
- JobID, ExpressJob, ItemID
ItemTable
- ItemID, цвет, размер
Значения в Jobs
:
10001, true, 3
10002, true, 3
10003, false, 4
Значения в Items
:
3, Blue, 1-2
4, Pink, 5-6
Набор результатов:
3,Blue,1-2,10001|10002
3,Pink,5-6,10003
Я изучил следующее в операторе select:
SELECT
i.ItemID, i.Colour, i.Size,
COUNT(i.ItemID) AS Quantity,
j.ExpressJob,
JobIDArray = STUFF((SELECT CONVERT(VARCHAR(10), jb.JOBID)
FROM Jobs jb
WHERE jb.JobID = j.JobID
FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, ''))
FROM
Jobs j
INNER JOIN
Items i ON i.ItemID = j.ItemID
GROUP BY
i.ItemID, i.Colour, i.Size, j.ExpressJob
Но я продолжаю получать статистическую ошибку группы JobID
. Из того, что я исследовал в сети, FROM XML - это путь, но по какой-то причине он не эффективен при выборе столбца ID.