日期:2014-05-17  浏览次数:20518 次

字段数据相加求和
比如:我做一个表“学生成绩表”
字段有:学号、姓名、语文、数学、英语、总分,总共六个字段,现在是有学生比如:学号:1、姓名:张三、语文:65、数学:75、英语:80;学号:2、姓名:李四、语文:60、数学:70、英语:80;学号:3、姓名:王麻子、语文:68、数学:72、英语:85;那么我怎么求他们的总分是多少?还有三个人的数学总分是多少、语文总分是多少、英语总分是多少、和他们的总分和是多少?再拿总分来平均分给他们,这样知道他们的平均分?谢谢!

------解决方案--------------------
select sum(`yuwen`) from cehngjidan where Uid='".$Uid."'";
环绕yuwen两边的,是键盘tab键上面ESC键下面的那个斜点,不是引号什么的
$total=$obj->exec($sqlsum); 这种写法只是返回update,delete语法操作后的更新函数,要用 $obj->query()来取得select语句的结果集
http://cn.php.net/manual/en/pdo.query.php
------解决方案--------------------
由于没看到你类是怎么些的。只能提供原装的程序:
$sql="select sum(`yuwen`) as yuwen_sum from cehngjidan where Uid='".$Uid."'";
$result=mysql_query($sql);
$row=mysql_fetch_assoc($result); 
echo $row['yuwen_sum'];

------解决方案--------------------
PHP code
$sql =<<< SQL
create table `学生成绩表` (
  `学号` int,
  `姓名` varchar(10),
  `语文` int default 0,
  `数学` int default 0,
  `英语` int default 0,
  `总分` int default 0,
  PRIMARY KEY (`学号`)
)
SQL;
//mysql_query($sql) or die(mysql_error());//执行一次后就注释掉

$sql = <<< SQL
insert into `学生成绩表` values 
(1, '张三', 65, 75, 80, 0),
(2, '李四', 60, 70, 80, 0),
(3, '王麻子', 68, 72, 85, 0)
SQL;
//mysql_query($sql) or die(mysql_error());//执行一次后就注释掉

//mysql_query('update `学生成绩表` set `总分`=`语文`+`数学`+`英语`');//执行一次后就注释掉

$sql =<<< SQL
select
 sum(`总分`) as `总分合计`, avg(`总分`) as `总平均分`,
 sum(`语文`) as `语文总分`, avg(`语文`) as `语文平均分`,
 sum(`数学`) as `数学合计`, avg(`数学`) as `数学平均分`,
 sum(`英语`) as `英语合计`, avg(`英语`) as `英语平均分`
 from `学生成绩表`
SQL;
$rs = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($rs);
print_r($row);