У меня запрос на вставку:
insert into CONTRACT (DEPARTMENT_ID_EXECUTE, ID, PROPOSAL_ID, ARCHIVE, USER_ID, CLIENT_ID, SEND_STATUS)
select distinct(DEPARTMENT_ID_EXECUTE), GEN_ID(GEN_ID_CONTRACT, 1), 5, 1, 1, 12, 0
from DISTRIBUTION_PROPOSAL where PROPOSAL_ID = 5
Проблема в том, что при использовании генератора
GEN_ID(GEN_ID_CONTRACT, 1),
Перестает работать «distinct», соответственно в «CONTRACT» вставляется больше записей, чем нужно.
Вопрос: Как переделать запрос «select», чтоб заработал «distinct»?
@msi, немного не так (ошибка: no column name specified for column number 2 in derived table .), но идея правильная,
Кому станет интересно:
insert into CONTRACT (DEPARTMENT_ID_EXECUTE, ID, PROPOSAL_ID, ARCHIVE, USER_ID, CLIENT_ID, SEND_STATUS)
select DEPARTMENT_ID_EXECUTE, GEN_ID(GEN_ID_CONTRACT, 1), 5, 1, 1, 12, 0
from (
select distinct(DEPARTMENT_ID_EXECUTE)
from DISTRIBUTION_PROPOSAL where PROPOSAL_ID = 5
)
Может быть так:
insert into CONTRACT (DEPARTMENT_ID_EXECUTE, ID, PROPOSAL_ID, ARCHIVE, USER_ID, CLIENT_ID, SEND_STATUS)
select distinct DEPARTMENT_ID_EXECUTE, GEN_ID(GEN_ID_CONTRACT, 1), 5, 1, 1, 12, 0
from DISTRIBUTION_PROPOSAL where PROPOSAL_ID = 5
Или так:
insert into CONTRACT (DEPARTMENT_ID_EXECUTE, ID, PROPOSAL_ID, ARCHIVE, USER_ID, CLIENT_ID, SEND_STATUS)
select distinct(DEPARTMENT_ID_EXECUTE), GEN_ID(Distinct GEN_ID_CONTRACT, 1), 5, 1, 1, 12, 0
from DISTRIBUTION_PROPOSAL where PROPOSAL_ID = 5
Попробуйте так:
insert into CONTRACT (DEPARTMENT_ID_EXECUTE, PROPOSAL_ID, ARCHIVE, USER_ID, CLIENT_ID, SEND_STATUS, ID)
select *, GEN_ID(GEN_ID_CONTRACT, 1)
from (select distinct DEPARTMENT_ID_EXECUTE, 5, 1, 1, 12, 0
from DISTRIBUTION_PROPOSAL where PROPOSAL_ID = 5) X;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
На сайте используется fluentPDOКаким кодом можно вытащить записи за последние 24 часа? В базе created_at (CURRENT_TIMESTAMP)