我需要更新一個表,在該表中我將 Order_Date 列更新為客戶的最早訂單日期。與該客戶相關的所有記錄必須更新到該最早日期。日期采用 YYYYMMDD 格式。
我的起始表看起來像這樣:
CUSTOMER_ID 訂單_日期
1 20170101
1 20180101
2 20190101
2 20200101
2 20210101
3 20170101
更新后的表需要如下所示:
CUSTOMER_ID 訂單_日期
1 20170101
1 20170101
2 20190101
2 20190101
2 20190101
3 20170101
我一直試圖通過自我加入來解決這個問題。謝謝你的幫助!
uj5u.com熱心網友回復:
看起來您可以應用更新....從表單中。例如;
UPDATE TableName SET Order_Date = T.Order_Date
FROM (
SELECT Customer_Id, MIN(CAST(Order_Date AS DATE)) as Order_Date
FROM TableName
GROUP BY Customer_Id
) AS T
WHERE Customer_Id = T.Customer_Id
看查詢。我選擇 customer_id 和 order_date 和 group by。同樣如您所見,我為 order_date 列添加了一個聚合函式,即“min”。它選擇最早的日期。
uj5u.com熱心網友回復:
也許是這樣的:
UPDATE CUSTOMER c
SET ORDER_DATE=(SELECT MIN(CAST(ORDER_DATE as DATE))
FROM CUSTOMER c2
WHERE c2.CUSTOMER_ID=c.CUSTOMER_ID)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/370176.html
