Изолировать записи с несколькими значениями (производная таблица) - PullRequest
0 голосов
/ 14 января 2019

Упрощенно у меня есть таблица, которая выглядит следующим образом:

ID - NAME - EMAIL
1 - JIM - Jim@hotmail.com
2 - JIM - Jim@gmail.com
3 - BARRY - Barry@hotmail.com
4 - JACK - Jack@hotmail.com

Я бы хотел запросить эту таблицу и вернуть только те поля, для которых NAME имеет несколько значений EMAIL, поэтому требуемый результат:

NAME - EMAIL
JIM - Jim@hotmail.com
JIM - Jim@gmail.com

Два других (Барри и Джек) возвращать не нужно, поскольку они имеют только одно значение для электронной почты.

Я немного борюсь с производной таблицей в Access, следующее не будет работать, потому что это дает мне ошибку в предложении FROM. Есть ли другой синтаксис?

select DISTINCT x.ID, x.NAME, x.EMAIL
from t as x
join (
    select ID
    from t
    group by ID
    having count(distinct EMAIL) > 1
) as y
    on x.ID = y.ID 

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Попробуйте это:

select x.ID, x.NAME, x.EMAIL
from t as x
where x.NAME in (
    select t.NAME
    from t
    group by t.NAME
    having count(*) > 1)
0 голосов
/ 14 января 2019

Попробуйте это

Select z.Name, t.Email from (

SELECT t.Name
FROM t
GROUP BY t.Name
HAVING Count(t.[Name])>1

)  as z INNER JOIN t ON z.name=t.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...