我想根据时间从db获取销售记录。对于每小时,我必须计算总销售额。如何在 Sqlite 中执行此操作?
My_DB
{
sale_date,
sale_time,
tot_amt,
net_amt
}
我想在报告中显示详细信息,如:
01:00-02:00 totamt
02:00-03:00 totamt
答案 0 :(得分:1)
小时位于时间戳的前两个字符中,因此您希望按以下方式分组:
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')
如果您希望为缺少的条目获取零而不是NULL,请使用total()
而不是sum()
。
答案 1 :(得分:0)
SELECT SUM(tot_amt)
FROM My_DB
WHERE sale_time >= TIME('01:00:00.000')
AND sale_time <= TIME('02:00:00.000')
使用IDE根据需要构建这些语句,并将TIME()函数中的值替换为您想要的值。如果您还需要日期,请另外使用AND sale_date = DATE('2014-08-11')
。