Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从数据库中获取记录,用于每小时报告_Android_Sql_Sqlite - Fatal编程技术网

Android 从数据库中获取记录,用于每小时报告

Android 从数据库中获取记录,用于每小时报告,android,sql,sqlite,Android,Sql,Sqlite,我想根据时间从db获取销售记录。对于每小时我必须计算总销售额。如何在Sqlite中执行此操作 My_DB { sale_date, sale_time, tot_amt, net_amt } 我想在报告中显示详细信息,如: 01:00-02:00 totamt 02:00-03:00 totamt 选择总和(总金额) 从我的数据库 其中销售时间>=时间('01:00:00.000') 而sale_time小时位于时间戳的前两个字符中,因此您希望按此分组: SELECT sub

我想根据时间从db获取销售记录。对于每小时我必须计算总销售额。如何在Sqlite中执行此操作

My_DB
{
sale_date,
sale_time,
tot_amt,
net_amt
}

我想在报告中显示详细信息,如:

01:00-02:00     totamt
02:00-03:00     totamt
选择总和(总金额)
从我的数据库
其中销售时间>=时间('01:00:00.000')

而sale_time小时位于时间戳的前两个字符中,因此您希望按此分组:

SELECT substr(sale_time, 1, 2) AS hour,
       sum(tot_amt) as totamt
FROM My_DB
GROUP BY hour
数据库无法为不存在的数据返回结果,因此,如果您需要所有小时的结果,必须首先列出这些结果:

SELECT hour,
       (SELECT sum(tot_amt)
        FROM My_DB
        WHERE substr(sale_time, 1, 2) = hour)
FROM (SELECT '00' AS hour UNION ALL
      SELECT '01'         UNION ALL
      SELECT '02'         UNION ALL
      ...
      SELECT '22'         UNION ALL
      SELECT '23')

如果要为缺少的条目获取零而不是空值,请使用
total()
而不是
sum()

sale\u time
中的值的格式是什么?00:07:28.372这是格式。但是在报告中显示我需要HH:MM。我想显示每小时(1-24)的详细信息。怎么做?还有一个疑问。如果我想显示特定时间范围的细节,如(0-7,7-12,12-16,16-24),那么我们如何继续?这将是另一个问题。但是,对于min/max,列表中需要两列。但我想展示一天的细节。1-2,2-3…23-24小时。
SELECT hour,
       (SELECT sum(tot_amt)
        FROM My_DB
        WHERE substr(sale_time, 1, 2) = hour)
FROM (SELECT '00' AS hour UNION ALL
      SELECT '01'         UNION ALL
      SELECT '02'         UNION ALL
      ...
      SELECT '22'         UNION ALL
      SELECT '23')