17代理收入.sql 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. -- Active: xiaoding_test@@192.168.110.85@3306@xiaoding_test
  2. /*
  3. 区域、交易时间、代理商分账都是wallet_trans_records表role字段为代理商角色然后分别获取districe、trans_time、amount字段,
  4. 代理商是wallet_trans_records表role字段为代理商角色然后获取wallet_id字段关联wallet表获取owner_id字段再与agent_infos表关联通过agent_infos表的id进行对比然后获取user_id字段和member_users表关联通过member_users的id对比最后获取nickname字段做为代理商,
  5. 平台分账与代理商分账是一样的数据,市场经费是代理商分账的一半
  6. */
  7. /* 区域、交易时间、代理商、代理商分账、平台分账、市场经费统计 */
  8. WITH trans_base AS (
  9. SELECT
  10. wtr.district /* 区域 */,
  11. wtr.trans_time /* 交易时间 */,
  12. wtr.wallet_id /* 钱包ID */,
  13. wtr.amount /* 交易金额 */,
  14. w.owner_id /* 所属主体编号 */
  15. FROM wallet_trans_records wtr
  16. INNER JOIN wallet w ON w.id = wtr.wallet_id
  17. WHERE wtr.role = '代理商'
  18. AND wtr.deleted_at IS NULL
  19. )
  20. SELECT
  21. tb.district /* 区域 */,
  22. tb.trans_time /* 交易时间 */,
  23. mu.nickname /* 代理商昵称 */,
  24. tb.amount /* 代理商分账 */,
  25. tb.amount /* 平台分账 */,
  26. tb.amount / 2 /* 市场经费 */
  27. FROM trans_base tb
  28. INNER JOIN agent_infos ai ON ai.id = tb.owner_id AND ai.deleted_at IS NULL
  29. INNER JOIN member_users mu ON mu.id = ai.user_id AND mu.deleted_at IS NULL
  30. ORDER BY
  31. tb.district,
  32. tb.trans_time DESC;