首先是架构 - 我有4个表:
office - officeid, officename
member - memberid, officeid, membername (multiple members per office)
transaction - transactionid, memberid, transactiontype (multiple transactions per member)
activity - activityid, officeid (multiple activities per office)
如何使用单个查询获取成员名单,办事处以及每个交易类型的数量和该办事处的活动总数?
我已经尝试过自己,我可以获取办公室名称,成员名称和活动计数但无法通过单个查询获取事务计数(每个事务类型)。想知道这是否可行。
任何建议/帮助表示赞赏。如果我能提供我错过的任何细节,请告诉我
编辑 - 我在http://sqlfiddle.com/#!9/9cf7b/1
添加了一个包含一些示例数据的sqlfiddle还意识到我错过了会员桌中的officeid外键。
编辑 - 添加预期输出
officename, membername, transaction_count_1, trasaction_count_2, activitycount
abc , aa , 1 , 1, , 3
abc , bb , 1 , 0, , 1
abc , cc , 0 , 1, , 0
答案 0 :(得分:0)
我认为这可以解决你的目的。
select b.membername,a.officename,count(transactiontype)
from office a,
member b,
transaction c
where a.officeid = b.officeid
and b.memberid = c.memberid
group by b.membername,a.officename
如果您需要任何进一步的数据操作,只需给出一个关于输出外观的想法(最好是截图或图像),我将相应地更改查询。
感谢。