Это мой первый пост в Stack Overflow, но он уже нашел его неоценимым ресурсом.Группа по результатам коррелированного подзапроса в SQL 2005
Мой вопрос связан с коррелированными подзапросами в группе по SQL-заявлению, который, как я понимаю, невозможен. Надеюсь, что, объяснив намерение запроса, я смогу найти какую-то помощь. В своей простейшей форме я пытаюсь объединить первичный ключ и группу по результатам коррелированного подзапроса. Поле, используемое для корреляции, уникально для записи первичного ключа. Если я группирую поля корреляции, он не дает ожидаемых результатов. Мне нужно иметь возможность группировать по результатам коррелированного подзапроса, но я не уверен, как реструктурировать запрос. Пример запроса приведен ниже.
Благодаря
-John
SELECT DISTINCT
(SELECT substring(CommaDelimitedTranslatedList, 0, len(CommaDelimitedTranslatedList))
FROM
(
SELECT
cd.choiceValue + ','
from SelectedChoiceTable sct
join ChoiceDescription cd on
cd.ChoiceID = sct.ChoiceID
where
sct.ChoiceSet = TargetJoinTable.ChoiceKey FOR XML PATH('')
) D (CommaDelimitedTranslatedList)) AS [TargetJoinTableCommaDelimitedTranslatedList1] ,
count(BaseTable.BaseKey)
FROM BaseTable
join TargetJoinTable on
BaseTable.BaseKey = TargetJoinTable.BaseKey
Group By
[TargetJoinTableCommaDelimitedTranslatedList1]
Order By
[TargetJoinTableCommaDelimitedTranslatedList1] ASC
Я использовал верхний пример. Это также улучшило производительность моего общего запроса. –