我有一個包含外鍵和DATETIME時間戳的表。我想刪除時間戳晚於最終時間戳的開始日期的所有行,但要分別爲每個項目。用GROUP BY和聚合條件刪除
按道理我想是這樣的:
DELETE FROM Entries
WHERE StartTime > CONVERT(Date,MAX(StartTime))
GROUP BY ItemId;
但我不能在DELETE使用GROUP BY,我也可以在WHERE條件中使用SUM()。
我可以一個項目在時刻使用子查詢這樣的刪除:
DELETE FROM Entries
WHERE [email protected]
AND StartTime > (
SELECT CONVERT(Date,MAX(StartTime)) FROM Entries
WHERE [email protected]
)
但我想刪除在單個查詢所有項目。我怎樣才能做到這一點?
@dasblinkenlight但我想刪除多個ItemIds。我上面的查詢只處理一個ItemId,爲每個項目分別應用時間戳檢查。我上面的查詢一次只處理一個ItemId。 – mtmacdonald
沒關係,我錯過了查詢中的@ Id參數。我編輯了你的查詢,使之成爲我以前的評論。 – dasblinkenlight