Android 如果另一列匹配,则添加该列的所有值
我创建了一个视图来合并两个表(Android 如果另一列匹配,则添加该列的所有值,android,sqlite,Android,Sqlite,我创建了一个视图来合并两个表(COMPANY和PAYMENTS),就像COMPANY来自COMPANY和DATEDUE来自PAYMENTS COMPANY | PAYDUE | DATEDUE 现在,如果公司和到期日匹配,我需要基本上汇总到期日中的所有值 假设我有这些条目: COMPANY | PAYDUE | DATEDUE Comp 1 | 8000 | 4/30/2015 Comp 1 | 7000 | 5/15/2015 Comp 1 | 6000 | 4/30/20
COMPANY
和PAYMENTS
),就像COMPANY
来自COMPANY
和DATEDUE
来自PAYMENTS
COMPANY | PAYDUE | DATEDUE
现在,如果公司
和到期日
匹配,我需要基本上汇总到期日
中的所有值
假设我有这些条目:
COMPANY | PAYDUE | DATEDUE
Comp 1 | 8000 | 4/30/2015
Comp 1 | 7000 | 5/15/2015
Comp 1 | 6000 | 4/30/2015
Comp 1 | 5000 | 5/15/2015
Comp 2 | 4000 | 4/30/2015
Comp 2 | 3000 | 5/15/2015
Comp 2 | 2000 | 4/30/2015
Comp 2 | 1000 | 5/15/2015
我需要的是添加所有行的PAYDUE
,这些行具有相同的COMPANY
和DATEDUE
,因此我需要显示:
COMPANY | PAYDUE | DATEDUE
Comp 1 | 14000 | 4/30/2015 <- from- 8000+6000
Comp 1 | 12000 | 5/15/2015 <- from- 7000+5000
Comp 2 | 6000 | 4/30/2015 <- from- 4000+2000
Comp 2 | 4000 | 5/15/2015 <- from- 3000+1000
我认为这个查询应该做到这一点:
Select c.Company, sum(p.paydue), p.datedue
from company c, payments p
where
c.company = p.company
group by p.datedue, c.company
更新:
根据sqlite具有聚合函数的说法,我从未在Android中尝试过,但我确实在SQLItemManager中尝试过,而且效果很好。
关于这个c.company=p.company
,您需要一种方法来知道什么是支付给哪个公司的,我假设company表描述的是公司,而payment表描述的是支付,并且有一列指定支付所属的公司
我重读了你的问题,所以,从观点来看应该是这样的:
Select v.Company, sum(v.paydue), v.datedue
from CompanyPaymentView v
where
group by v.datedue, v.company
我试过使用你提到的求和函数,但遇到了一个错误。我发了一篇编辑文章,我做错什么了吗?我还需要一些关于
c.company=p.company
区域的澄清。我在哪里可以得到p.company
,我的p表没有company
列。另外,我在旁注中看到,sqlite没有任何用于添加列的核心功能,这个答案是否错误?感谢您的提醒,因为某种原因,我之前没有收到编辑通知。我对它进行了一些小的调整,大部分是我这边的小语法错误。我将把工作查询放在编辑中。再次感谢!
Select v.Company, sum(v.paydue), v.datedue
from CompanyPaymentView v
where
group by v.datedue, v.company