Я работаю над SQL-запросом, который учитывает повторяющиеся записи, основанные на текстовом поле, с которым я работаю: где datasource = 'Web' или 'Internal'. В настоящее время я использую оператор case, чтобы подсчитать количество раз, когда запись показывает это значение. Мой вопрос: как мне вернуть значения (я думаю, оператор case с индикатором (1 или 0)), который показывает, где datasource = 'Web' и date> datasource = 'Internal' и date?SQL: Flag Duplicate Records using Case Statement WHERE FIELD VALUE1 <> FIELD VALUE 2 & FIELD VALUE1 DATE> FIELD VALUE2
Дата web.datasource> Дата internal.datasource
Я прилагаю запрос о том, что я в настоящее время работает, что мой выход и то, что я хотел бы конечный результат, чтобы выглядеть.
SELECT id
,lastname
,firstname
,datasource
,CASE
WHEN (
(Datasource = 'Web')
)THEN Count(Datasource)
ELSE 0
END WebData
,CASE
WHEN (
(Datasource = 'Internal')
) THEN Count(Datasource)
ELSE 0
END InternalData
,count(id) as countid
,date
FROM Table
GROUP BY
id
,lastname
,firstname
,datasource
,date
Это в настоящее время возвращается:
12345 Jack Boss Internal 0 1 1 2015-03-25
12241 Eric Graves Internal 0 1 1 2015-04-01
13300 Su Lynn Web 1 0 1 2016-02-01
13300 Su Lynn Internal 0 1 1 2015-08-07
13914 Mark Ross Internal 0 2 2 2015-05-01
14008 Mitch Smith Web 1 0 1 2016-03-07
14008 Mitch Smith Internal 0 1 1 2015-06-02
Это то, что я хотел бы конечный результат выглядеть следующим образом:
12345 Jack Boss Internal 0 1 1 2015-03-25 0
12241 Eric Graves Internal 0 1 1 2015-04-01 0
13300 Su Lynn Web 1 0 1 2016-02-01 0
13300 Su Lynn Internal 0 1 1 2015-08-07 0
13914 Mark Ross Internal 0 2 2 2015-05-01 0
14008 Mitch Smith Web 1 0 1 2016-03-07 1
14008 Mitch Smith Internal 0 1 1 2015-06-02 1
ИЛИ
14008 Mitch Smith 1 1 2
идеи? Благодарю.
Я не понимаю, почему это '0' для всех, кроме двух последних записей в вашем примере, не могли бы вы объяснить это? Возможно, вам поможет расширение ваших данных образца, чтобы показать дубликаты. Кроме того, какую базу данных вы используете? –
Учитывая, что вы ссылаетесь на столбец 'datasource', вы используете' union' для получения всех данных в один результирующий набор? –
Я просто поставил 0,1 в качестве индикатора. Может быть правдой, ложной или любой другой. 1 Указывает, что в веб-записи есть дата больше внутренней записи – user4637035