我需要拿出一个看起来像这样的报告:
有 3 个表格 Agent、Sales 和 Payments。销售和付款通过代理表链接。该报告将显示每个代理每天的总销售额。它还需要每天显示代理已支付的任何款项,这将从总销售余额中扣除,以便我们可以在任何时间点判断代理是否欠业务,反之亦然。
我计划解决这个问题的方法是:
- 获取每个代理每天的所有销售额(一次查询)
- 每天获取每个代理的所有付款(一次查询)
- 对于每个销售、代理和每天检查(代理每天支付每个代理)(循环)
- 如果找到匹配项,则获取值并用于累积总计的计算
- 否则只显示适当的销售数据和累计总数。
我不确定是否有可以让我的生活更轻松的查询。谢谢。
[编辑]
代理表: id、name、opening_balance
销售表: id、agent_id、amount、customer_id、sale_date
付款表: id、agent_id、amount、bank_id、payment_date、status
[第二次编辑]
感谢奥拉夫·迪茨切。没有子选择的第二个查询需要很长时间才能运行。大约 88 秒。我还尝试了第一个子选择,它在一瞬间完成,但是 sum(s.amount) 和 sum(p.amount) 的值是应有的两倍。
[第三次编辑]
一个代理可以进行多次销售,一个代理可以进行多次付款
销售和付款之间没有直接联系