1

我有一个表,同时包含operatorsoperatorgroups。操作员通过链接表链接到“操作员组”。现在,对于每个“操作员组”,我想选择链接到它的操作员。

它需要是动态的,因此当创建新的“操作员组”时,我不必调整查询。

我现在要做的是重复以下查询以列出操作员的名称和“操作员组”名称,但每次添加“操作员组”时都必须重写查询。如何对所有不同的“操作员组”进行相同的查询

SELECT Distinct A.[ref_dynanaam], A.[naam] 
FROM [dbo].[actiedoor] A  
LEFT JOIN [dbo].[actiedoorlink] B 
ON B.[actiedoorid]=A.[unid] 
OR B.[actiedoorgroepid] = A.[unid]
WHERE B.[actiedoorgroepid] ='unid' AND status >='1' 
order by A.[naam] Desc

这给了我

ref_Dynanaam Naam
Makelaars Makelaars
Eyk, Johan van
Hoetmer, JanR
Rooijen, Manon van

请注意,只有 Coaches 出现两次。我想列出所有“操作员组”的列表(对于每个不同的 b.actiedoorgroepid)
屏幕截图 1 由于声誉点很少而无法发布屏幕截图
= 来自“actiedoor”和 actiedoorlink 表的小节
屏幕截图 2
由于声誉很少而无法发布屏幕截图points
= 上述查询的结果

另一个编辑:
所以,我更进一步。
通过执行以下查询,我得到了我需要的东西:

SELECT Distinct A.[ref_dynanaam], A.[naam], B.[actiedoorgroepid] 
FROM [dbo].[actiedoor] A 
LEFT JOIN [dbo].[actiedoorlink] B 
ON B.[actiedoorid]=A.[unid] 
OR B.[actiedoorgroepid] = A.[unid] 
WHERE (B.[actiedoorgroepid] 
IN (Select DISTINCT B.[actiedoorgroepid]from actiedoorlink as B 
WHERE B.[actiedoorgroepid] = B.[actiedoorgroepid])  AND A.[status] >='1') 
GROUP BY B.[actiedoorgroepid], A.[naam], A.[ref_dynanaam]  

这给了我:

ref_Dynanaam naam actiedoorgroepid
Hoetmer, Jan 4e0001
Leurink, Rob 4e0001
Rooijen, Manon van 4e0001
Soodoo, Adjai 4e0001
Ideeenmanagement Ideeenmanagement 4e0001
Eyk, Johan van 4a0002
Hoetmer, Jan 4a0002
Rooijen, Manon van 4a04alaar
Makela Makela

现在,对于结果集中的每一行,我需要执行另一个子查询。
有什么建议么?

4

2 回答 2

0

我认为您需要进行自我加入

SELECT A.[actiedoorid] AS [operatorid],A.[unid] 
FROM [dbo].[actiedoorlink] A
JOIN [dbo].[actiedoorlink] B  
ON A.[actiedoorgroepid]=B.[actiedoorgroepid]
于 2013-08-05T10:29:15.743 回答
0

我决定采用不同的方法并忘记整个查询。相反,我决定做一个简单的查询,并在我正在使用的程序中使用过滤系统来获取我需要的数据。不过感谢您的帮助!

于 2013-08-23T12:43:00.870 回答