C'est la première fois que je publie sur Stack Overflow, mais je l'ai déjà trouvé comme une ressource inestimable.Grouper les résultats d'une sous-requête corrélée dans SQL 2005
Ma question a à voir avec les sous-requêtes corrélées dans le groupe par une instruction SQL, ce que je comprends n'est pas possible. J'espère qu'en expliquant l'intention de la requête, je pourrai peut-être trouver de l'aide. Dans sa forme la plus simple, j'essaie d'agréger par une clé primaire et un groupe par les résultats d'une sous-requête corrélée. Le champ utilisé pour la corrélation est unique par enregistrement de clé primaire. Si je groupe par le champ de corrélation, il ne fournit pas les résultats escomptés. Je dois être capable de regrouper par les résultats de la sous-requête corrélée, mais je ne sais pas comment restructurer la requête. Un exemple de requête est fourni ci-dessous.
Merci
-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
J'ai utilisé l'exemple du haut. Cela a fonctionné ainsi que des performances améliorées sur ma requête globale. –