SQL,2表一个字段的总和

时间:2015-01-19 19:30:04

标签: php mysql

我有2个表,studentfamily

一半学生来周日,另一半学生周六

有些家庭有一个以上的孩子。

家庭支付学费。有些家庭因为一些喜剧而有折扣。

“discount”是“家庭”表格中的字段

在报告中,我需要计算所有利用折扣(按天)折扣的家庭的折扣总和。

当我这样做时,如果一个家庭有2个孩子,结果将返回折扣的两倍,如果3个孩子3倍折扣....

我的查询:

$select_total_discounts = 
"SELECT SUM(Discount) AS total_discounts
FROM family, student
WHERE family.Family_ID=student.Family_ID
AND student.Day like '%$Day%'  ;" ; 

$query= mysql_query($select_total_discounts,$conn) ; 
$row = mysql_fetch_assoc($query);
$total_discounts= $row['total_discounts'];

提前谢谢

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你想要计算家庭的折扣,而不考虑它的学生数量。所以它就是这样(用变量改变日期值):

SELECT SUM(Discount) AS total_discounts
FROM family 
WHERE family.Family_ID in (select student.Family_ID from student  where student.Day like 'Monday')

所以它总结了在指定日期至少有一名学生的家庭的折扣。如果它有一个,两个,三个或更多学生,则不会影响结果。

使用SQLFiddle:http://sqlfiddle.com/#!2/9b9793/1

答案 1 :(得分:-2)

这不是真正完整的答案,但我在这里发布,所以它是可读的。

我认为您正在寻找类似UNION

的内容
SELECT sum(value) FROM ((SELECT value FROM table) UNION ALL (SELECT value FROM table2)) sq

UNION垂直合并您的表格。