У меня есть 3 таблицы table_1, table_2 и table_3.
Я пытаюсь вставить данные в table_3 (некоторые строки уже присутствуют в этой таблице) с соединением из table_1 и table_2.
table_3 has following columns:
unique_id - its unique id needs to be increment by 1 from its last value
client_key - should get from table_1.client_key
xcolumn - should get from table_2.xcolumn
xxcolumn - this column value depend on table_3.xcolumn (below I mentioned which value should be here)
if table_3.xcolumn contains any of this value (purchase some things,purchase) xxcolumn should be PURCHASE
if table_3.xcolumn contains any of this value (cash advance,ATM,promo cashing) xxcolumn should be CASH
if table_3.xcolumn contains any of this value (promo,promo deal) xxcolumn should be PROMO
if table_3.xcolumn doest not contains any above value then xxcolumn should be OTHER
xycolumn - this column value depend on table_3.xxcolumn (below I mentioned which value should be here)
if table_3.xxcolumn is PURCHASE xycolumn should be 1
if table_3.xxcolumn is CASH xycolumn should be 2
if table_3.xxcolumn is PROMO xycolumn should be 3
if table_3.xxcolumn is OTHER xycolumn should be 4
ycolumn - should get from table_2.ycolumn
Я пробовал ниже запрос для вставки:
insert into table_3(unique_id,client_key,xcolumn,xxcolumn,xycolumn,ycolumn)
select (select max(unique_id) + 1 from
table_3),table_1.client_key,table_2.xcolumn,'cash',1,table_2.ycolumn from
table_2 inner join table_1 on table_2.client_id=table_1.client_id;
но для unique_id я не могу увеличить его значение на 1 при присоединении, если получено более одной строки (увеличивается только один раз не для всех строк)
также я не могу понять, как получить значение xxcolumn, xycolumn.
для исх. Я создал скрипт sql с table_1, table_2,, table_3
Также ключи не должны иметь ведущих нулей.
Таблица DDL уже определена, я не могу ее изменить, и unique_id не устанавливается автоматически при создании. вот почему я использую ручной подход
@SloanThrasher Извини, нули?
Невозможно изменить схему -> разогреть резюме.
Почему вы не используете поля автоматического увеличения для своих первичных ключей? Запрос в вашем скрипте SQL не имеет смысла.