Обнаружение повторяющихся записей и маркировка старых с новым идентификатором записи - PullRequest
0 голосов
/ 29 января 2019

Я невежественен с новым требованием.Честно говоря, я еще ничего не кодировал, поэтому прошу вас помочь мне только с логикой.

У меня есть большая таблица, используемая для отчетов, в которой содержатся данные рабочих и в какие периоды онисработало (так что у нас может быть много ID01 John Doe Working From X to Y in Z), эта таблица постоянно обновляется тем, кто знает, кто, но никто не проверяет обновленные данные (потому что иногда John Doe работал на самом деле из X1 to Y2 вместо X to Y), поэтомуТребование это обнаружение дубликатов в этой таблице.Пока что я не нашел ничего дублированного, но я должен быть на шаг впереди этого парня.Хорошо, сделайте триггер после вставки, вы могли бы сказать, и я сделал!Предлагая решение моему боссу, он сразу не понравился, потому что он (в настоящее время) хочет работать с хранимой процедурой в текущей таблице, чтобы мы могли изучить случаи, когда вставки совпадают со старыми записями, поэтому мне нужно будет сделать то, что онхочу, я думаю.

В любом случае, вот триггер, если введена дублирующаяся строка, она изменяет старое значение на 0 в VALIDO, столбце, который я создал, чтобы сделать что-то похожее на новых вставках (триггер ниже не работаетправильно tho):

AS
IF EXISTS(
  SELECT 1
  FROM tstSolap t 
  INNER JOIN INSERTED i 
    ON t.ID_HR = i.ID_HR AND t.PERPRO = i.PERPRO
)
BEGIN
    PRINT 'duplicado'
    UPDATE tstSolap SET valido = 0
END
ELSE
BEGIN
    UPDATE tstSolap SET valido = 1
END

Тогда у меня вопрос, как я могу обнаружить логически дублированные строки на основе нескольких критериев и задать один специальный столбец с новым идентификатором?(так что легче определить вручную)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...