2014-10-16 19 views
1

微软SQL Server报表生成微软SQL报表生成器:多行“复制”到每个ID一行

我有一个查询返回的各种从我们的社区情报数据库信息,其运行是这样的:

SELECT 
viewadhocorganisation.[org_id] 
..../other fields 
viewadhocorganisationmainactivities.[Main Activity] 

FROM 
viewadhocorganisation LEFT JOIN viewadhocorganisationmainactivities 
ON viewadhocorganisation.[OrganisationID] = viewadhocorganisationmainactivities.[Organisation ID] 

WHERE 
viewadhocorganisation.[city name] = 'MyCity' 

此方法返回各自领域的每一个组织上的新行每一个新行seperately上市(即复制) 因此SELECT DISTINCT不执行任何操作在这种情况下为每一行主要活动是不是严格意义上的重复

即返回是:

ID | Org Name | other fields | Main Activity 
1 | Org 1  | other fields | Activity 1 
1 | Org 1  | other fields | Activity 2 
1 | Org 1  | other fields | Activity 3 
1 | Org 1  | other fields | Activity 4 
2 | Org 2  | other fields | Activity 1 
2 | Org 2  | other fields | Activity 5 
2 | Org 2  | other fields | Activity 7 
2 | Org 2  | other fields | Activity 8 

主要活动是从一个单独的查找表(由一个中央系统管理员维护)填充的文本串我曾尝试过各种SUM,AGGREGATE,(也尝试过各种JOIN,LOOKUP SET但我似乎会遇到很多错误,但我可能会错误地使用它),但尚未找到解决方案以获得所需的输出,其中所有主要活动均以逗号分隔:

需要输出:

Org_ID | Org Name | other fields | Main Activity 1 | Org 1 | other fields | Activity 1, Activity 2, Activity 3 2 | Org 2 | other fields | Activity 1, Activity 5, Activity 7

其目的是获取信息转储集成到谷歌地图API显示组织1,组织2等地址显示他们的主要活动,我已经有一个过程,但无法将主要活动字段整理成一行

编辑:我到后端用不上,只能由我们的供应商

回答

0

您可以使用临时表来实现这个创建的视图和表报告。 在viewadhocorganisationmainactivities中将所需的一系列活动放在一个临时表中,然后将该临时表与主表(即viewadhocorganisation)结合使用。

+0

嗨,你能解释一下更多的细节,我有点新手这个。一般来说,我无法创建表/视图,因为我已经从供应商处获得一组视图,并从中进行报告。由于我不是系统管理员,因此对后端的访问非常有限 – 2014-10-16 13:03:40

0

您需要将表连接到本身,并使用stuff子句以逗号分隔的格式获取字符串。 See this fiddle