有一个名为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”,但没有检查他的逻辑的其余部分 - 将被编辑。 –