試圖從具有最高日期的另一個表格更新一列。使用wheres更新另一個表格
Table 1
實施例:
PartNumber | Cost
1000 | .10
1001 | .20
Table 2
實施例:
PartNumber | Cost | Date
1000 | .10 | 2017-01-01
1000 | .50 | 2017-02-01
1001 | .20 | 2017-01-01
1002 | .50 | 2017-02-02
我想更新表1與表2,從最近的值,這將是0.50每個...的查詢我用來更新這個工作很好,直到我意識到我沒有抓住正確的成本,因爲有倍數..我現在想抓住最高的修訂版本。
我的查詢:
UPDATE dex_mfgx..insp_master
SET dex_mfgx..insp_master.costperpart = t2.sct_cst_tot
FROM dex_mfgx..insp_master AS t1
INNER JOIN qad_repl..sct_det_sql AS t2
ON t1.partnum = t2.sct_part
WHERE t1.partnum = t2.sct_part and t2.sct_cst_date = MAX(t2.sct_cst_date) ;
我的錯誤:
Msg 147, Level 15, State 1, Line 6
An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.
不與具有或GROUPING多少運氣,雖然我還沒有大量使用他們..
任何有一個想法,有助於?
那麼,它是MySQL還是SQL Server ?,請使用相應的標記 – Lamak
您是否試圖用子查詢獲取MAX? –