我有一张表,其中包含operators
和operatorgroups
。
运算符通过链接表链接到“operatorgroups”。
现在,对于每个'operatorgroup',我想选择链接到它的运算符。
它需要是动态的,所以当创建一个新的'operatorgroup'时,我不必调整查询。
我现在所做的是重复以下查询以列出运算符的名称和'operatorgroup'名称,但每次添加'operatorgroup'时我都必须重写查询。 如何为所有不同的“operatorgroups”
进行相同的查询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
请注意,只有教练出现两次。
我想列出所有'operatorgroups'的列表(对于每个不同的b.actiedoorgroepid)
屏幕截图1
由于to0几个声誉点,无法发布截图
='actiedoor'和actiedoorlink表格中的一个子节
屏幕截图2
由于to0几个声誉点,无法发布截图
=上述查询的结果
另一个编辑:
所以,我更进了一步
通过执行以下查询,我得到了我需要的东西:
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 4a0002
Makelaars Makelaars 4a0002
现在,对于结果集中的每一行,我需要执行另一个子查询 有什么建议吗?
答案 0 :(得分:0)
我认为你需要自我加入
SELECT A.[actiedoorid] AS [operatorid],A.[unid]
FROM [dbo].[actiedoorlink] A
JOIN [dbo].[actiedoorlink] B
ON A.[actiedoorgroepid]=B.[actiedoorgroepid]
答案 1 :(得分:0)
我决定采用不同的方法而忘记整个查询。相反,我决定做一个简单的查询,并使用我正在使用的程序中的过滤系统来获取我需要的数据。 谢谢你的帮助!