【发布时间】:2019-08-29 07:02:31
【问题描述】:
需要从表格中获取最近 10 个日期的行,即使表格中缺少某些日期。
此查询可以正常获取日期,但问题是 android room dao 中的相同查询在 'SELECT x+1' x 处抛出编译错误无法解决。
@Query(WITH RECURSIVE
stepDtailsTable(x) AS (
SELECT 0
UNION ALL
SELECT x + 1 FROM stepDtailsTable
LIMIT(SELECT((julianday('2019-03-20')-julianday('2019-03-01')))+1)
)
SELECT date(julianday('2019-03-01'),'+'||x||' days')as date FROM stepDtailsTable")
StepDetailsPojo getLastTenDayData();
【问题讨论】:
-
为什么需要使用 RECURSIVE 来选择最后十个日期?如果您使用不同的查询,那么问题可能会消失。
-
任何不同查询的提示?我对 sql 查询没有太多的 exp.. 并且要求从表中获取最近 10 天的数据,即使有些天数据不存在于表中,如果数据不存在我需要将值显示为 0..
-
类似
select * from stepDtailsTable order by thedatefield desc limit 10 -
如果表中有日期为 1,2,3,6,8,11 的行.. 使用此查询,我们可以得到 6 行以 desc 顺序排列,但我需要缺少日期以及 10,9 ,8,7,6,5,4,3,2,1.. 这样对于缺少的日期,我可以在过去十天的图表中显示 0 个值..
-
对不起,我误解了“失踪”。是的,
recursive在这种情况下很好。
标签: android sqlite android-room