0

示例 1:

IDENT | CURRENT | SOURCE
12345 | 12345   | A
23456 | 12345   | B
34567 | 12345   | C

示例 2:

IDENT | CURRENT | SOURCE
56789 | 56789   | A 

具有 3 列 IDENT、CURRENT 和 SOURCE 的表。我正在尝试编写一个查询,该查询仅在只有一个唯一 CURRENT 记录且 IDENT = CURRENT(示例 2)的记录上显示 *。有些记录具有相同的 CURRENT 但不同的 IDENT(示例 1),这些记录应从结果中省略。

我正在尝试的所有当前查询,其中 IDENT=CURRENT 显示的结果类似于示例 1。不确定我是否需要以某种方式使用 WHERE CURRENT COUNT = 1。

4

2 回答 2

0
select * from table 
where ident=current 
and current in (select current from table group by 1 having count(*)=1)

或没有子查询

select 
min(ident) as ident, 
current, min(source) as source
from table 

where ident=current 
group by current
having count(*)=1
于 2013-10-11T14:24:32.617 回答
0
SELECT M.* 
FROM Table1 AS M 
WHERE M.IDENT = M.CURRENT 
AND (
      SELECT COUNT(*) 
      FROM Table1 AS S 
      WHERE M.IDENT = S.IDENT 
      AND M.CURRENT = S.CURRENT
    ) = 1
于 2013-10-11T14:27:27.507 回答