Sql 如果一个字段被多次找到,如何不获取数据

Sql 如果一个字段被多次找到,如何不获取数据,sql,cds,Sql,Cds,我正在查询设备和设备编号, 但是,如果一个安装中有多个设备,我希望省略该数据 select a~anlage, c~equnr from eastl as a inner join egerh as b on a~logiknr = b~logiknr and a~bis = '99991231' and b~bis = '99991231' inner join equi as c on b~equnr = c~equnr and c~matnr = 'REGULATOR' group by

我正在查询设备和设备编号, 但是,如果一个安装中有多个设备,我希望省略该数据

select a~anlage, c~equnr
from eastl as a 
inner join egerh as b on a~logiknr = b~logiknr and a~bis = '99991231' and b~bis = '99991231'
inner join equi as c on b~equnr = c~equnr and c~matnr = 'REGULATOR'
group by a~anlage, c~equnr 
having count(*) = 1

我当前的结果如下所示:

anlage - equnr
111111 - 01012
111111 - 01013
111111 - 01014
222222 - 01015
222222 - 01016
444444 - 01017

我希望:

anlage - equnr
444444 - 01017

似乎您只需要按
a~原语
进行分组:

select a~anlage, max(c~equnr)
from eastl as a 
inner join egerh as b on a~logiknr = b~logiknr and a~bis = '99991231' and b~bis = '99991231'
inner join equi as c on b~equnr = c~equnr and c~matnr = 'REGULATOR'
group by a~anlage
having count(*) = 1

它起作用了!但我不明白你为什么能解释一下?根据您提供的代码,我假设我的结果是:111111-01014、2222222-01016和444444-01017,但它只有444444-01017。您不希望存在超过1个等式的
原语。这就是为什么你应该只按原籍分组。非常感谢!