I need to create a SQL Trigger with Insert Statement selecting multiple columns from different tables . Something like this:
CREATE OR REPLACE TRIGGER ACTIV_TRG 
AFTER INSERT ON TRANS_LOG
REFERENCING NEW AS TR  
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
    INSERT INTO ACTIVITIES values ( 
    (SELECT MAX(SEQNBR) FROM ACTIV_LOG where TRAN_ID = 'XXX'),
    TR.ACCOUNT,
    TR.EVENT, 
    SELECT TRAN_ID ,
    TRAN_DT ,
    TRAN_LN  FROM ACTIV_DEL where TRAN_ID = 'XXX',
    CURRENT TIMESTAMP
)
END;
The issue is when I tried to select more than one column in the sub query. I know if I separate the Sub Query like this :
(TRAN_ID  FROM ACTIV_DEL where TRAN_ID = 'XXX'),
(TRAN_DT  FROM ACTIV_DEL where TRAN_ID = 'XXX'),
(TRAN_LN  FROM ACTIV_DEL where TRAN_ID = 'XXX'),
will work but definitely there must be a better and efficient way to do this.
Thanks in advance.
Definitely, there must be a better solution than this:
CREATE OR REPLACE TRIGGER ACTIV_TRG 
AFTER INSERT ON TRANS_LOG
REFERENCING NEW AS TR  
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
   INSERT INTO ACTIVITIES values ( 
   (SELECT MAX(SEQNBR) FROM ACTIV_LOG where TRAN_ID = 'XXX'),
   TR.ACCOUNT, ---> FIELD FROM TRANS_LOG (TRIGGER SOURCE)
   TR.EVENT,   ---> FIELD FROM TRANS_LOG (TRIGGER SOURCE)
   SELECT TRAN_ID  FROM ACTIV_DEL where TRAN_ID = 'XXX',  ---> REPETING SELECT
   SELETC TRAN_DT  FROM ACTIV_DEL where TRAN_ID = 'XXX',  ---> REPETING SELECT
   SELECT TRAN_LN  FROM ACTIV_DEL where TRAN_ID = 'XXX',  ---> REPETING SELECT
   CURRENT TIMESTAMP
)
END;
 
     
    