2014-12-04 146 views
-1
select * from balance where value = '"+value+"' order by date DESC LIMIT 1 

如何选择行的值为每个月的结局..上述代码只给出日期的第一个值...但我需要每个月的第一个值....存储在时间戳从sqlite数据库每月检索值

回答

0

首先,使用MAX()而不是ORDER BY:

SELECT max(date) 
FROM balance 
WHERE value = ? 

然后你可以使用GROUP BY获得每个月的最大日(%Y%m产出一年月,即每个月都是唯一的):

SELECT max(date) 
FROM balance 
WHERE value = ? 
GROUP BY strftime('%Y%m') 

然后你可以用这些日期来过滤原始表:

SELECT * 
FROM balance 
WHERE date IN (SELECT max(date) 
       FROM balance 
       WHERE value = ? 
       GROUP BY strftime('%Y%m'))