簡體   English   中英

將具有2個不同值的行復制到同一表中

[英]Copy row with 2 different values into same table

我在獲取要復制並插入到同一表中但具有不同值並且基於兩個條件的記錄時遇到了麻煩。

我到目前為止:

INSERT INTO Userdetails
(ID, Username, Firstname, Surname, Location, TimeAs)
SELECT ID, Username, Firstname, Surname, Location, CURRENT_TIMESTAMP
FROM 
Userdetails where Username = 'Harvard'; // and the latest date of the record

我想做的是,當用新的時間戳更新位置的新記錄時,將具有舊記錄的所有詳細信息(名字等)的位置插入表中,但保留舊記錄。

如果僅使用WHERE Username =,則每次執行查詢時,記錄數將乘以2x。

樣品日期:

Username | Firstname | Surname | Location | Last Updated

Harvard    David       Beckham   London    2017-05-08 12:11:00

Harvard    David       Beckham   Turkey    2017-05-08 12:14:00

Stanton    John        Smith     Paris     2017-05-08 11:24:00
 // This would be the result of the query, With a different timeStamp and Location but keeping the old record
Harvard    David       Beckham   Hong Kong    2017-05-08 12:20:00

我要執行的操作是復制最新記錄,其中username ='Harvard',但還要使用最新時間,而不僅僅是用戶名,因為這會創建2條記錄,而不僅僅是我想要的1條記錄。

任何幫助表示贊賞。

除非我在這里缺少任何東西,否則您可以簡單地使用top 1order by

INSERT INTO Userdetails
(ID, Username, Firstname, Surname, Location, TimeAs)
SELECT TOP 1 ID, Username, Firstname, Surname, Location, CURRENT_TIMESTAMP
FROM Userdetails 
WHERE Username = 'Harvard'
ORDER BY TimeAs DESC;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM