我有一个更改表,我需要为事务表中的id分配下一个可用的id。批处理完成后,它将被发布到事务表中。如何在select insert语句中获取另一个表的max + 1?我必须将它连接到同一查询中的code_id。
INSERT INTO CHANGES
(P.CODE, P.ID, P.CODE_ID, P.FIRST_NAME, P.MIDDLE_NAME, P.LAST_NAME)
SELECT 'P', MAX(transactionstable.ID) +1,
'P0000' + MAX(transactionstable.ID) +1, 'first','middle','last';
答案 0 :(得分:0)
INSERT INTO CHANGES (
P.CODE,
P.ID,
P.CODE_ID,
P.FIRST_NAME,
P.MIDDLE_NAME,
P.LAST_NAME
)
SELECT P, --remove single quote, otherwise it is static value
MAX(transactionstable.ID) +1,
'P0000' + CAST((MAX(transactionstable.ID) +1) as VARCHAR(50)), --Conversion here for string concatenation
first, --remove single quote, otherwise it is static value
middle, --remove single quote, otherwise it is static value
last --remove single quote, otherwise it is static value
/*********************
missing here
**********************/
FROM transactions