我有一个要求,其中有 10 件商品,每件商品有 10 条包含买入价
和卖出价
的记录。
现在我的要求是,对于每件商品,我需要获取最新日期并计算买卖价格...就像我需要对所有 10 件商品进行相同的操作,最后将所有商品的买卖价格相加为了获得总和...我需要在一个查询中完成整个事情..
我可以编写查询和子查询,但不知道如何编写如此复杂的查询..
数据为:
item date buy sell
item1 28/10/2014 10 10
item1 27/10/2014 10 10
item1 26/10/2014 10 10
item2 28/10/2014 10 10
item2 27/10/2014 10 10
item2 26/10/2014 10 10
item3 28/10/2014 10 10
item3 27/10/2014 10 10
item3 26/10/2014 10 10
我的要求是得到
item1 28/10/2014 10 10
item2 28/10/2014 10 10
item3 28/10/2014 10 10
最后是totay buy=30
和total sell=30
到目前为止我已经尝试过:
下面的查询我已经尝试过
select item as c, buy as a ,sell as b,date from table group by item order by substr(date,7,4)||substr(date,4,2) ||substr(date,1,2) desc limit 1
此查询仅返回与一项而不是 3 行对应的 1 行值。我不确定如何构建此类查询。
最佳答案
您需要获取max(date)
,而不是使用limit 1
,并且您只需求和
即可购买
和 sell
值照常:
select item as c, buy as a, sell as b, max(date), sum(buy) as totalbuy, sum(sell) as totalsell
from trans
group by item
SQLFiddle:http://sqlfiddle.com/#!7/ef07f/14
编辑:
根据其文档,max
也可用于字符串。
https://www.sqlite.org/lang_corefunc.html ;它也可能有单个或多个参数。
关于java - 选择每个项目的最新日期并在 sqlite 中获取总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26624579/