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个等式的
原语。这就是为什么你应该只按原籍分组。非常感谢!