вставить все строки, где не существует одинаковых данных столбца - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть таблица для столбцов:

id,
pregnew,
entryDate,
unionID

Таблица заполнена этими данными: Screenshot

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

Вот запрос, который я пробовал:

insert into pg2(pregNew, unionID, entryDate) select pregNew, unionID, entryDate from fpipg2
where  month(pg3.entryDate)=month(current_date) and not exists (select unionID from mis4pg2 where month(pg2.entryDate)=month(current_date)) 

Ожидается, что в этом запросе значение entryDate 2018-08-19 и значение unionID 2 следует игнорировать.Но он останавливается после первой вставки.Что я делаю не так?

1 Ответ

0 голосов
/ 29 сентября 2018

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

Это предполагает запрос exists, например:

insert into pg2 (pregNew, unionID, entryDate)
    select pregNew, unionID, entryDate
    from fpipg2 p2
    where year(pg2.entryDate) = year(current_date) and
          month(pg2.entryDate) = month(current_date) and
          not exists (select 1
                      from pg2 ppg2
                      where ppg2.unionid = p2.unionid and
                            year(ppg2.entryDate) = year(p2.entryDate) and
                            month(ppg2.entryDate) = month(p2.entryDate) and
                     );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...