【发布时间】:2010-11-17 16:42:09
【问题描述】:
这是我第一次在 Stack Overflow 上发帖,但我已经发现它是非常宝贵的资源。
我的问题与 SQL 语句的 group by 中的相关子查询有关,我知道这是不可能的。我希望通过解释查询的意图,我可以找到一些帮助。以最简单的形式,我尝试按主键进行聚合,并按相关子查询的结果进行分组。用于关联的字段对于每个主键记录都是唯一的。如果我按相关字段分组,它不会提供预期的结果。我需要能够按相关子查询的结果进行分组,但不确定如何重组查询。下面提供了一个示例查询。
谢谢
-约翰
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
【问题讨论】:
标签: sql-server-2005 group-by correlated-subquery