我有2个相同的表日期和DATES_ARCHIVEDMYSQL插入+选择+案例+ DELETE不工作
我想在日期表中选择所有具有日期是比当前日期-88天前行,然后将这些行插入到DATES_ARCHIVED中。
我为此创建了一个CASE。
然后插入后,我想删除原来的DATES表中的那些相同的行。
我确信我得到这个工作之前,但它不工作了它一直给错误:
错误代码:1136列数并不在行匹配值计数1
所有表具有列的相同量和我也除去2个触发器我不得不对表,但会发生同样的错误。
我很确定这是因为它结束AS MostRecentDate的情况下,我认为这是添加一个新的列。
另外,如果我删除所有代码下面的第一:从日期,我得到了同样的错误
下面是代码:
INSERT INTO dates_archived
(term, course_no, date1_end, date2_end, date3_end, date4_end)
SELECT
term, course_no, date1_end, date2_end, date3_end, date4_end,
CASE WHEN date1_end > date2_end THEN date1_end
WHEN date2_end > date1_end THEN date2_end
WHEN date3_end > date1_end THEN date3_end
WHEN date4_end > date1_end THEN date4_end
WHEN date1_end > date3_end THEN date1_end
WHEN date2_end > date3_end THEN date2_end
WHEN date3_end > date2_end THEN date3_end
WHEN date4_end > date2_end THEN date4_end
WHEN date1_end > date4_end THEN date1_end
WHEN date2_end > date4_end THEN date2_end
WHEN date3_end > date4_end THEN date3_end
WHEN date4_end > date3_end THEN date4_end
ELSE 0
END AS MostRecentDate
FROM dates
HAVING (MostRecentDate <= (SELECT CURDATE() - INTERVAL 88 DAY));
FROM dates
WHERE (date1_end OR date2_end OR date3_end OR date4_end = MostRecentDate);
DELETE FROM dates
WHERE (date1_end OR date2_end OR date3_end OR date4_end = MostRecentDate);
由于提前, 克里斯
您选择7列并插入6列 – Jens
此外,您不能在where子句中的select子句中使用您定义的别名。 – fancyPants
应如何你的delete语句了解MostRecentDate? – fancyPants