0
我是SQL新手,遇到了一些解决问题的麻烦。我正在重写一个脚本,以便能够与收到电子邮件的客户进行匹配。以前我一直在使用会话表如下:将表格从插入表格中插入
DECLARE GLOBAL TEMPORARY TABLE EMAIL_SENDS
(
ACCOUNT_NUMBER INT
)
WITH REPLACE
ON COMMIT PRESERVE ROWS
;
INSERT INTO SESSION.EMAIL_SENDS
SELECT ACCOUNT_NUMBER
FROM SENT_DATA A
JOIN MAIN_TABLE B
ON A.CLIENT_ID_SUBKEY = B.CUST_ID
OR A.CLIENT_ID_SUBKEY = B.OLD_ID
WHERE SEND_ID = 123456
GROUP BY ACCOUNT_NUMBER
;
然后把数据当我刚使用CASE WHEN C.ACCOUNT_NUMBER IS NOT NULL THEN 1 ELSE 0 END加入与EMAIL_SENDS检举谁拥有和MAIN_TABLE尚未收到电子邮件。
但是,我想改进这个过程,并向MAIN_TABLE添加一列,说明谁收到了电子邮件,谁没有收到。
这是我的脚本至今:
ALTER TABLE MAIN_TABLE
ADD EMAILED INT
;
INSERT INTO MAIN_TABLE
SELECT EMAILED
CASE WHEN ACCOUNT_NUMBER IS NOT NULL THEN 1 ELSE 0 END
FROM (SENT_DATA A
JOIN MAIN_TABLE B
ON A.CLIENT_ID_SUBKEY = B.CUST_ID
OR A.CLIENT_ID_SUBKEY = B.OLD_ID
WHERE SEND_ID = 123456
GROUP BY ACCOUNT_NUMBER
)
;
由于我是新来的SQL我无法弄清楚我要去哪里错了(尽管它可能是显而易见的任何人精通它)。
分享你的表结构....有两列的主表? EMIALED,ACCOUNT_NUMBER –
您确定要'INSERT INTO MAIN_TABLE',而不是'UPDATE MAIN_TABLE'吗? – mustaccio