Запрос на создание отчета для разных значений в таблице

0

Я ищу для создания отчета, где мне нужно сравнивать записи из таблицы mysql на основе столбца источника, а когда записи имеют разные значения, кроме исходного столбца, отображаются разные записи и статус.

Например, учитывая следующую таблицу: Необработанные значения

Мы получим следующий результат:

Значения отчета

Джо показан потому, что для записей разных источников дают разные супруги. Боб и Марк не показаны, потому что оба источника имеют для него одинаковые данные. Эрнест показан, потому что только один источник имеет свою информацию.

Чтобы найти записи, которые существуют в одном источнике, но не находятся в другом, кажется довольно простым, что-то вроде:

SELECT 'New' as 'Status', f.* FROM (select * from tbl where tbl.Source='facebook') where 'Name' not in (SELECT 'Name' FROM select * from tbl where tbl.Source='linkedin')

Но я немного потерял, как найти записи, которые отличаются друг от друга.

Благодарю.

Теги:

1 ответ

0
Лучший ответ

Идентифицируйте имена, которые имеют разные значения работы или супруга в другом источнике. Используйте UNION ALL чтобы объединить их с новыми именами, которые публикуются только в одном источнике.

select 
'Different' status,
 t1.name,
 t1.job,
 t1.spouse,
 t1.source
FROM 
 tbl t1 
WHERE 
 EXISTS (SELECT 1 FROM tbl t2 WHERE t2.name = t1.name AND t2.source <> t1.source AND 
                         (t2.job <> t1.job OR t2.spouse <> t1.spouse ))
UNION ALL 
SELECT 
'New',
 name,
 job,
 spouse,
 source
FROM tbl t1
WHERE NOT EXISTS (SELECT 1 FROM tbl t2 WHERE t2.name = t1.name
                  AND t2.source <> t1.source );
  • 0
    Спасибо, это то, что я искал!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню