【发布时间】:2014-01-20 15:47:15
【问题描述】:
我有 3 张桌子,学生、家庭和费用。有些家庭有不止一个孩子。费用记录在费用表中。家庭全年支付许多款项。 我想按家庭对孩子的数量进行分组,并得到每个家庭支付的总金额。 我的查询:
SELECT student.Family_ID, family.Family_Name, count(*) as kids_numb, sum (Amount) as Paid_Amount
FROM student, family, fee
WHERE student.Family_ID = family.Family_ID
AND fee.Family_ID = family.Family_ID
AND student.Status ='1'
GROUP BY student.Family_ID;
我需要对类似的东西进行排序:
姓氏 | # 孩子 |费用 |付费 |平衡 -------------------------------------------------- -- 黎巴嫩 | 1 | 425 | 200 | 225 拉沃伊 | 2 | 700 | 150 | 550 午睡 | 1 | 425 | 0 | 425 专业 | 3 | 900 | 300 | 600【问题讨论】:
-
请显示准确的表模式(例如,
SHOW CREATE TABLE <table_name>的结果)。amount是否属于fee表?fees的总价值应该来自哪里? -
是的金额属于费用表。
-
只有一件事,如果家庭的所有孩子的状态 =0,则查询仍会返回一行。在演示中,假设 family_id (3) 的两个孩子都离开了学校(状态 = 0),然后查询返回一行,其中 NULL 作为孩子数。谢谢
-
太棒了!有效。你真是个好人。发自内心的感谢你
-
很抱歉再次回到这里。我想知道是否可以添加“WITH ROLLUP”来计算总金额。谢谢