簡體   English   中英

如何刪除最后一條記錄

[英]How to delete the last record

使用SQL Server 2000

ID Date Value

001 23-02-2009 300
001 24-02-2009 400
001 25-02-2009 150
002 23-02-2009 300
002 24-02-2009 400
003 23-02-2009 150
.....
.....

我要從上表中刪除每個ID的最后日期。

如何進行查詢

預期產量

 ID Date Value

    001 23-02-2009 300
    001 24-02-2009 400
    002 23-02-2009 300
    .....
    .....
    .....

需要查詢幫助

您可以通過在DELETE語句中進行子選擇和聯接來實現。 例如:

DECLARE @myTable TABLE(ID VARCHAR(3), [Date] DATETIME, Value INT)
INSERT INTO @myTable VALUES('001', CONVERT(DATETIME, '23-02-2009', 103), 300)
INSERT INTO @myTable VALUES('001', CONVERT(DATETIME, '24-02-2009', 103), 400)
INSERT INTO @myTable VALUES('001', CONVERT(DATETIME, '25-02-2009', 103), 150)
INSERT INTO @myTable VALUES('002', CONVERT(DATETIME, '23-02-2009', 103), 300)
INSERT INTO @myTable VALUES('002', CONVERT(DATETIME, '24-02-2009', 103), 400)
INSERT INTO @myTable VALUES('003', CONVERT(DATETIME, '23-02-2009', 103), 150)

DELETE @myTable
FROM @myTable M
JOIN (SELECT ID, MAX([Date]) as [Date] FROM @myTable GROUP BY [ID]) G
    ON G.ID = M.ID AND G.[Date] = M.[Date]

SELECT * FROM @myTable

請注意,我已針對SQL Server 2005測試了此SQL,但我認為它也應在SQL Server 2000中工作。

暫無
暫無

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

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