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
)
最初の更新コマンドは、ffact_listテーブルをrespondents_dimからのZipで更新することです。どちらも、panel_idを使用して結合しますが、そのIDを持つ複数のレコードが存在する可能性があり、最新のvalid_from日付を考慮する必要があります。
実行しようとしましたが、以下のエラーが発生します
1064-SQL構文にエラーがあります。1行目の「HAVINGMAX(rd.Valid_From)」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。
クエリに何か問題がありますか?