Android 从数据库中获取记录,用于每小时报告
我想根据时间从db获取销售记录。对于每小时我必须计算总销售额。如何在Sqlite中执行此操作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
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')