Как избежать дублирования записей в таблице в SQL Server? - PullRequest
0 голосов
/ 30 октября 2019

У меня есть таблица, в которую ежемесячно вносятся записи о пациентах и ​​данные их счетов. Допустим, таблица "Paitent_Details". В первое число каждого месяца вставляются определенные записи за текущий месяц. В следующем месяце я хочу вставить только те записи за месяц, а не все записи.

В настоящее время я написал один SP для извлечения результатов, который затем сохраняет записи в переменной временной таблицы, которые затем вставляют записи в таблицу Patient_Details.

Например, для сентября 2019 яЗа сентябрь было вставлено 125 записей. За октябрь 2019 г. я хотел вставить 100 записей, но перед вставкой 100 записей за октябрь 201 было выполнено 125 записей. Следовательно, в идеале общее число записей должно составлять 225 (125 + 100), тогда как записина самом деле это 350 (125 + 125 + 100)

Я хочу настроить логику, чтобы проверить, вставлены ли данные за сентябрь 2019 года, если это так, игнорировать это и вставить только записи за октябрь 2019 года.

1 Ответ

0 голосов
/ 30 октября 2019

Попробуйте использовать левое внешнее объединение, чтобы проверить существование записи, чтобы сохранить идемпотентность вставки:

INSERT INTO b (Patient_id, DOS, CPT, DetailId)
SELECT a.Patient_Id, a.DOS, a.CPT, a.DetailId
FROM SourceTable_a a
LEFT OUTER JOIN DestinationTable_b b ON b.DetailId = a.DetailId
WHERE b.DetailId IS NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...