如果另一列匹配,则添加列的所有值

时间:2015-04-21 14:50:26

标签: android sqlite

我创建了一个视图来组合两个表(COMPANYPAYMENTS),其中COMPANY来自COMPANYPAYDUE和{{1来自DATEDUE

PAYMENTS

现在,如果COMPANY | PAYDUE | DATEDUE PAYDUE匹配,我需要基本总结COMPANY中的所有值。

所以,让我说我有这些条目:

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 COMPANY的广告。任何人都可以为此建议方法吗?

也忘了提到我希望在查询中完成所有操作,但如果在查询中无法做到这一点,我会对任何解决方案感到满意。

最终工作查询

DATEDUE

1 个答案:

答案 0 :(得分:1)

我认为这个查询应该这样做:

Select c.Company, sum(p.paydue), p.datedue
from company c, payments p 
where
c.company = p.company
group by p.datedue, c.company

<强>更新

根据documentation sqlite有聚合函数,我从来没有在Android中尝试过,但我确实在sqlitemanager中试过,它运行正常。 关于这个c.company = p.company,你需要一种方法来了解什么公司的付款,我假设公司表描述公司,付款表描述付款,并有一列指定公司付款属于。

我重新阅读了你的问题,因此,从视图中应该是这样的:

Select v.Company, sum(v.paydue), v.datedue
from CompanyPaymentView v
where
group by v.datedue, v.company