【问题标题】:sqlite query helpsqlite 查询帮助
【发布时间】:2010-11-23 02:30:26
【问题描述】:

我有 1 张桌子。

jobs = ref( int primary key autoincrement ) 
      _id(int)
      date(date)

_id 代表特定的汽车。表中的每一行代表汽车的工作,包括工作发生的日期。一辆汽车可以有很多工作。

我需要 2 个 sqlite 命令

  1. 该命令将为我提供表中每辆车的最新工作。

  2. 该命令将获取过去 21 天没有工作的所有汽车。

提前致谢。

【问题讨论】:

    标签: sql database sqlite


    【解决方案1】:

    最近的工作:

     SELECT _id, max(date) FROM jobs GROUP BY _id
    

    过去 21 天内没有工作的所有汽车:

     SELECT _id, max(date) FROM jobs GROUP BY _id HAVING max(date) < (date-21)
    

    您必须根据存储日期的方式采用 (date-21) 逻辑(SQLite 没有本机 DATE 类型)。

    【讨论】:

    • 对不起,我不是很清楚,我实际上需要 2 个命令,我编辑了我的帖子,谢谢拉里
    • 感谢命令在 sqlite3 shell 中运行良好,但在 android 中,光标/列表视图只有在我绑定 _id 列时才会起作用:S 它不会让我显示日期,但是一个简单的 SELECT * FROM tb1 将填充光标/列表视图的两列,拉里有什么想法吗?非常感谢您的帮助
    • 不熟悉 Android 开发,但猜测它与 MAX(Date) 的返回类型不是您期望的日期的样子有关(SQLite 关于数据类型非常有趣)。如果可以,请尝试检查该列的数据类型,并使用 SQLite 日期函数之一将其转换为日期。
    • 好的,谢谢你所有的 jelp,选择的语句很好,我会摆弄它 o/