UPDATE Fact_List sfl, Respondents_Dim rd SET sfl.Zip = rd.Zip where sfl.Panel_Id=rd.Panel_Id HAVING MAX(rd.Valid_From)
respondents_dim` (
`Respondents_Key` int(11) NOT NULL AUTO_INCREMENT,
`Panel_Id` int(11) DEFAULT NULL,
`First_Name` varchar(100) DEFAULT NULL,
`Last_Name` varchar(100) DEFAULT NULL,
`Specialty` varchar(100) DEFAULT NULL,
`Dataset` varchar(50) DEFAULT NULL,
`Age` int(11) DEFAULT NULL,
`Sex` varchar(10) DEFAULT NULL,
`Zip` varchar(100) DEFAULT NULL,
`Valid_From` date DEFAULT NULL,
`Valid_To` date DEFAULT NULL)
CREATE TABLE IF NOT EXISTS `fact_list` (
`Panel_Id` int(11) DEFAULT NULL,
`Project_Id` int(11) DEFAULT NULL,
`Zip` varchar(100) DEFAULT NULL,
`Employee_Id` int(11) DEFAULT NULL,
`Created_Date` date DEFAULT NULL
)
第一个更新命令是使用来自 respondent_dim 的 Zip 更新 fact_list 表,其中两个都使用 panel_id 连接,但可能有多个具有该 id 的记录,并且应考虑最新的 valid_from 日期。
我试图执行它,但它给出了以下错误
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“HAVING MAX(rd.Valid_From)”附近使用正确的语法
查询中有什么问题吗?