有一個名爲commonprofit的表,有三個字段:名稱,日期,利潤。
select name,max(date) from commonprofit group by name
命令可以得到多條記錄的日期是由組name
, 現在我想刪除這是由命令選擇的每一條記錄最大,爲什麼我不能做到這一點,如下所示:在sqlite中刪除記錄
drop from commonprofit where date in (select name,max(date) from commonprofit group by name);
delete from commonprofit where date=max(date) group by name;
delete from commonprofit where date in (select name,max(date) from commonprofit group by name);
他們都不能做。
基本數據是:
name date profit
1 2011/12 42359
1 2010/12 32863
1 2009/12 24293
1 2008/12 16436
1 2007/12 15442
2 2011/12 91634
2 2010/12 58410
2 2009/12 50668
2 2008/12 54297
3 2009/12 12352
3 2008/12 12352
3 2007/12 14226
我想刪除的是:
name date profit
1 2011/12 42359
2 2011/12 91634
3 2009/12 12352
我想要得到的是:
name date profit
1 2010/12 32863
1 2009/12 24293
1 2008/12 16436
1 2007/12 15442
2 2010/12 58410
2 2009/12 50668
2 2008/12 54297
3 2008/12 12352
3 2007/12 14226
我該怎麼辦?
它不能運行,的SQLiteManager:可能的SQL語法錯誤:從commonprofit哪裏日期刪除(選擇名稱,最大(日期)來自commonprofit group的名稱);異常名稱:NS_ERROR_FAILURE 異常消息:組件返回失敗代碼:0x80004005(NS_ERROR_FAILURE)[mozIStorageConnection.createStatement] –
此命令(如果有效)也將刪除記錄在其他'name'組中具有相同的'日期'。 –
OOps - 發現了「DROP」而不是「DELETE」,但沒有檢查他的邏輯的其餘部分 - 將被編輯。 –