我试图从三个不同的表中得到一个表。我设法计算了“付费”字段,但无法获得“费用”的正确值。
The Customer Table
╔════╦═════════════╗
║ ID ║ NAME ║
╠════╬═════════════╣
║ 1 ║ John Smith ║
║ 2 ║ Jim Jimmers ║
╚════╩═════════════╝
The Event table
╔════╦═════════════╦═════════════╦═════════════╗
║ ID ║ Event ║ Decription ║ Fee ║
╠════╬═════════════╬═════════════╬═════════════╣
║ 1 ║ Rock Music ║ Interseting ║ 80 ║
║ 2 ║ Pop music ║ Interseting ║ 90 ║
╚════╩═════════════╩═════════════╩═════════════╝
The Payment table
╔════╦═════════════╦═════════════╦═════════════╗
║ ID ║already Paid ║ Customer_ID ║ Event_ID ║
╠════╬═════════════╬═════════════╬═════════════╣
║ 1 ║ 0 ║ 1 ║ 1 ║
║ 2 ║ 90 ║ 1 ║ 2 ║
║ ║ ║ ║ ║
║ 3 ║ 90 ║ 2 ║ 2 ║
║ 4 ║ 80 ║ 2 ║ 1 ║
╚════╩═════════════╩═════════════╩═════════════╝
我想让这张桌子付款是指他已经支付的费用,而费用是指他必须支付的赛事费用
╔═══════╦══════════╦═══════╗
║Name ║ paid ║ Fee ║
╠═══════╬══════════╬═══════╣
║John Sm║ 90 ║ 170 ║
║Jim Jim║ 170 ║ 170 ║
║ ║ ║ ║
║ ║ ║ ║
║ ║ ║ ║
║ ║ ║ ║
╚═══════╩══════════╩═══════╝
未经测试:
select c.name, sum(p.paid), sum(e.fee)
from customer c
join payment p on c.id = p.customer_id
join event e on p.event_id = e.id
group by c.name;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句